New upstream version 3.6.1~20161102
authorGert Wollny <gw.fossdev@gmail.com>
Mon, 7 Nov 2016 11:40:51 +0000 (12:40 +0100)
committerGert Wollny <gw.fossdev@gmail.com>
Mon, 7 Nov 2016 11:40:51 +0000 (12:40 +0100)
726 files changed:
CMake/3rdparty.cmake
CMake/DCMTKConfig.cmake.in
CMake/dcmtkPrepare.cmake
CMakeLists.txt
Makefile
README
VERSION
config/Makefile.def.in
config/modules
dcmdata/apps/xml2dcm.cc
dcmdata/data/dicom.dic
dcmdata/include/dcmtk/dcmdata/dcdeftag.h
dcmdata/include/dcmtk/dcmdata/dcerror.h
dcmdata/include/dcmtk/dcmdata/dcuid.h
dcmdata/libsrc/dcdictbi.cc
dcmdata/libsrc/dcuid.cc
dcmfg/include/dcmtk/dcmfg/fgderimg.h
dcmfg/include/dcmtk/dcmfg/fgfracon.h
dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h [new file with mode: 0644]
dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h [new file with mode: 0644]
dcmfg/include/dcmtk/dcmfg/fginterface.h
dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h [new file with mode: 0644]
dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h
dcmfg/include/dcmtk/dcmfg/fgtypes.h
dcmfg/include/dcmtk/dcmfg/stack.h
dcmfg/libsrc/CMakeLists.txt
dcmfg/libsrc/Makefile.dep
dcmfg/libsrc/fg.cc
dcmfg/libsrc/fgbase.cc
dcmfg/libsrc/fgderimg.cc
dcmfg/libsrc/fgfact.cc
dcmfg/libsrc/fgfracon.cc
dcmfg/libsrc/fgframeanatomy.cc [new file with mode: 0644]
dcmfg/libsrc/fgframevoilut.cc
dcmfg/libsrc/fgidentpixeltransform.cc [new file with mode: 0644]
dcmfg/libsrc/fgimagedatatype.cc
dcmfg/libsrc/fginterface.cc
dcmfg/libsrc/fgparametricmapframetype.cc [new file with mode: 0644]
dcmfg/libsrc/fgpixmsr.cc
dcmfg/libsrc/fgplanor.cc
dcmfg/libsrc/fgplanorvol.cc
dcmfg/libsrc/fgplanpo.cc
dcmfg/libsrc/fgplanposvol.cc
dcmfg/libsrc/fgrealworldvaluemapping.cc
dcmfg/libsrc/fgseg.cc
dcmfg/libsrc/fgtypes.cc
dcmfg/libsrc/fgusimagedescription.cc
dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h
dcmimgle/libsrc/dimoimg.cc
dcmiod/include/dcmtk/dcmiod/iodcommn.h
dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h [new file with mode: 0644]
dcmiod/include/dcmtk/dcmiod/iodimage.h
dcmiod/include/dcmtk/dcmiod/iodmacro.h
dcmiod/include/dcmtk/dcmiod/iodutil.h
dcmiod/include/dcmtk/dcmiod/modbase.h
dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h
dcmiod/include/dcmtk/dcmiod/modenhequipment.h
dcmiod/include/dcmtk/dcmiod/modequipment.h
dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h [new file with mode: 0644]
dcmiod/include/dcmtk/dcmiod/modfor.h
dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h
dcmiod/include/dcmtk/dcmiod/modimagepixel.h
dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h [new file with mode: 0644]
dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h [new file with mode: 0644]
dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h
dcmiod/include/dcmtk/dcmiod/modsynchronisation.h
dcmiod/libsrc/CMakeLists.txt
dcmiod/libsrc/Makefile.dep
dcmiod/libsrc/Makefile.in
dcmiod/libsrc/iodcommn.cc
dcmiod/libsrc/iodcontentitemmacro.cc [new file with mode: 0644]
dcmiod/libsrc/iodimage.cc [deleted file]
dcmiod/libsrc/iodmacro.cc
dcmiod/libsrc/modbase.cc
dcmiod/libsrc/modcommoninstanceref.cc
dcmiod/libsrc/modenhequipment.cc
dcmiod/libsrc/modequipment.cc
dcmiod/libsrc/modfloatingpointimagepixel.cc [new file with mode: 0644]
dcmiod/libsrc/modfor.cc
dcmiod/libsrc/modimagepixel.cc
dcmiod/libsrc/modimagepixelbase.cc [new file with mode: 0644]
dcmiod/libsrc/modmultiframedimension.cc
dcmiod/libsrc/modmultiframefg.cc
dcmiod/libsrc/modsynchronization.cc
dcmiod/libsrc/modusfor.cc
dcmiod/tests/CMakeLists.txt
dcmiod/tests/Makefile.dep
dcmiod/tests/Makefile.in
dcmiod/tests/tests.cc
dcmiod/tests/timagepixel.cc [new file with mode: 0644]
dcmjpeg/libsrc/ddpiimpl.cc
dcmjpeg/libsrc/djcodece.cc
dcmjpls/libcharls/decodstr.h
dcmjpls/libcharls/encodstr.h
dcmjpls/libcharls/header.cc
dcmjpls/libcharls/intrface.cc
dcmjpls/libcharls/intrface.h
dcmjpls/libcharls/pubtypes.h
dcmjpls/libcharls/scan.h
dcmjpls/libcharls/streams.h
dcmjpls/libcharls/util.h
dcmjpls/libsrc/djcodece.cc
dcmnet/docs/movescu.man
dcmnet/docs/storescp.man
dcmnet/etc/storescp.cfg
dcmnet/etc/storescu.cfg
dcmnet/libsrc/dstorscu.cc
dcmnet/libsrc/dulparse.cc
dcmpmap/CMakeLists.txt [new file with mode: 0644]
dcmpmap/Makefile.in [new file with mode: 0644]
dcmpmap/configure [new file with mode: 0755]
dcmpmap/data/Makefile.in [new file with mode: 0644]
dcmpmap/docs/Makefile.in [new file with mode: 0644]
dcmpmap/docs/dcmpmap.dox [new file with mode: 0644]
dcmpmap/etc/Makefile.in [new file with mode: 0644]
dcmpmap/include/CMakeLists.txt [new file with mode: 0644]
dcmpmap/include/Makefile.in [new file with mode: 0644]
dcmpmap/include/dcmtk/dcmpmap/dpmdef.h [new file with mode: 0644]
dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h [new file with mode: 0644]
dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h [new file with mode: 0644]
dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h [new file with mode: 0644]
dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h [new file with mode: 0644]
dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h [new file with mode: 0644]
dcmpmap/libsrc/CMakeLists.txt [new file with mode: 0644]
dcmpmap/libsrc/Makefile.dep [new file with mode: 0644]
dcmpmap/libsrc/Makefile.in [new file with mode: 0644]
dcmpmap/libsrc/dpmmodparametricmapimage.cc [new file with mode: 0644]
dcmpmap/libsrc/dpmmodparametricmapseries.cc [new file with mode: 0644]
dcmpmap/libsrc/dpmparametricmapbase.cc [new file with mode: 0644]
dcmpmap/libsrc/dpmparametricmapiod.cc [new file with mode: 0644]
dcmpmap/libsrc/dpmtypes.cc [new file with mode: 0644]
dcmpmap/tests/Makefile.dep [new file with mode: 0644]
dcmpmap/tests/Makefile.in [new file with mode: 0644]
dcmpstat/apps/dcmprscu.cc
dcmpstat/libsrc/dviface.cc
dcmpstat/libsrc/dvpshlp.cc
dcmqrdb/docs/dcmqrscp.man
dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h
dcmrt/apps/Makefile.dep
dcmrt/include/dcmtk/dcmrt/drtdose.h
dcmrt/include/dcmtk/dcmrt/drtimage.h
dcmrt/include/dcmtk/dcmrt/drtionpl.h
dcmrt/include/dcmtk/dcmrt/drtiontr.h
dcmrt/include/dcmtk/dcmrt/drtplan.h
dcmrt/include/dcmtk/dcmrt/drtstrct.h
dcmrt/include/dcmtk/dcmrt/drttreat.h
dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtads.h
dcmrt/include/dcmtk/dcmrt/seq/drtafs.h
dcmrt/include/dcmtk/dcmrt/seq/drtags.h
dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtarics.h [deleted file]
dcmrt/include/dcmtk/dcmrt/seq/drtas1.h
dcmrt/include/dcmtk/dcmrt/seq/drtas5.h
dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
dcmrt/include/dcmtk/dcmrt/seq/drtas7.h
dcmrt/include/dcmtk/dcmrt/seq/drtass.h
dcmrt/include/dcmtk/dcmrt/seq/drtbads.h
dcmrt/include/dcmtk/dcmrt/seq/drtbas.h
dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h
dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h
dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h
dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h
dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h
dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h
dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h
dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h
dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h
dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h
dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtbs.h
dcmrt/include/dcmtk/dcmrt/seq/drtbss.h
dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h
dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
dcmrt/include/dcmtk/dcmrt/seq/drtccs.h
dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h
dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtces.h
dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtchs.h
dcmrt/include/dcmtk/dcmrt/seq/drtcims.h
dcmrt/include/dcmtk/dcmrt/seq/drtcis.h
dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h
dcmrt/include/dcmtk/dcmrt/seq/drtcos.h
dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h
dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h
dcmrt/include/dcmtk/dcmrt/seq/drtcps.h
dcmrt/include/dcmtk/dcmrt/seq/drtcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h
dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h
dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h
dcmrt/include/dcmtk/dcmrt/seq/drtcss.h
dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtddps.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtdias.h
dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h
dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtds.h
dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtdss.h
dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h
dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h
dcmrt/include/dcmtk/dcmrt/seq/drteas.h
dcmrt/include/dcmtk/dcmrt/seq/drtecs.h
dcmrt/include/dcmtk/dcmrt/seq/drtes.h
dcmrt/include/dcmtk/dcmrt/seq/drtfds.h
dcmrt/include/dcmtk/dcmrt/seq/drtfes.h
dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h
dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h
dcmrt/include/dcmtk/dcmrt/seq/drtfms.h
dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h
dcmrt/include/dcmtk/dcmrt/seq/drtgas.h
dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
dcmrt/include/dcmtk/dcmrt/seq/drtians.h
dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h
dcmrt/include/dcmtk/dcmrt/seq/drtibls.h
dcmrt/include/dcmtk/dcmrt/seq/drtibs.h
dcmrt/include/dcmtk/dcmrt/seq/drticpds.h
dcmrt/include/dcmtk/dcmrt/seq/drticps.h
dcmrt/include/dcmtk/dcmrt/seq/drtics.h
dcmrt/include/dcmtk/dcmrt/seq/drtiis.h
dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h
dcmrt/include/dcmtk/dcmrt/seq/drtircs.h
dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h
dcmrt/include/dcmtk/dcmrt/seq/drtitts.h
dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h
dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h
dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h
dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h
dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h
dcmrt/include/dcmtk/dcmrt/seq/drtmas.h
dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtmls.h
dcmrt/include/dcmtk/dcmrt/seq/drtmps.h
dcmrt/include/dcmtk/dcmrt/seq/drtmris.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtmss.h
dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h
dcmrt/include/dcmtk/dcmrt/seq/drtoas.h
dcmrt/include/dcmtk/dcmrt/seq/drtois.h
dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
dcmrt/include/dcmtk/dcmrt/seq/drtos.h
dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h
dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h
dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h
dcmrt/include/dcmtk/dcmrt/seq/drtpics.h
dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtporis.h
dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h
dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h
dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h
dcmrt/include/dcmtk/dcmrt/seq/drtpss.h
dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h
dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h
dcmrt/include/dcmtk/dcmrt/seq/drtqds.h
dcmrt/include/dcmtk/dcmrt/seq/drtras.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h
dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h
dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h
dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h
dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h
dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h
dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h
dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h
dcmrt/include/dcmtk/dcmrt/seq/drtrds.h
dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h
dcmrt/include/dcmtk/dcmrt/seq/drtrics.h
dcmrt/include/dcmtk/dcmrt/seq/drtrims.h
dcmrt/include/dcmtk/dcmrt/seq/drtris.h
dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h
dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrms.h
dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h
dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h
dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h
dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h
dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h
dcmrt/include/dcmtk/dcmrt/seq/drtrps.h
dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h
dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h
dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h
dcmrt/include/dcmtk/dcmrt/seq/drtrros.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h
dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h
dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h
dcmrt/include/dcmtk/dcmrt/seq/drtrses.h
dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtrss.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h
dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h
dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h
dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h
dcmrt/include/dcmtk/dcmrt/seq/drtrws.h
dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h
dcmrt/include/dcmtk/dcmrt/seq/drtscris.h
dcmrt/include/dcmtk/dcmrt/seq/drtscs.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtsds.h
dcmrt/include/dcmtk/dcmrt/seq/drtshds.h
dcmrt/include/dcmtk/dcmrt/seq/drtsins.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtsis.h
dcmrt/include/dcmtk/dcmrt/seq/drtsns.h
dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h
dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h
dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtss.h
dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtsss.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drttms0.h
dcmrt/include/dcmtk/dcmrt/seq/drttms9.h
dcmrt/include/dcmtk/dcmrt/seq/drttscds.h
dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h
dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h
dcmrt/include/dcmtk/dcmrt/seq/drttts.h
dcmrt/include/dcmtk/dcmrt/seq/drtudis.h [new file with mode: 0644]
dcmrt/include/dcmtk/dcmrt/seq/drtvls.h
dcmrt/include/dcmtk/dcmrt/seq/drtwps.h
dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h
dcmrt/include/dcmtk/dcmrt/seq/drtws.h
dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h
dcmrt/libsrc/CMakeLists.txt
dcmrt/libsrc/Makefile.dep
dcmrt/libsrc/Makefile.in
dcmrt/libsrc/drtaadcs.cc
dcmrt/libsrc/drtadcs.cc
dcmrt/libsrc/drtads.cc
dcmrt/libsrc/drtafs.cc
dcmrt/libsrc/drtags.cc
dcmrt/libsrc/drtajcs.cc
dcmrt/libsrc/drtarics.cc [deleted file]
dcmrt/libsrc/drtas1.cc
dcmrt/libsrc/drtas5.cc
dcmrt/libsrc/drtas6.cc
dcmrt/libsrc/drtas7.cc
dcmrt/libsrc/drtass.cc
dcmrt/libsrc/drtbads.cc
dcmrt/libsrc/drtbas.cc
dcmrt/libsrc/drtbcps.cc
dcmrt/libsrc/drtbl2.cc
dcmrt/libsrc/drtbl5.cc
dcmrt/libsrc/drtbldls.cc
dcmrt/libsrc/drtbldps.cc
dcmrt/libsrc/drtblds1.cc
dcmrt/libsrc/drtblds5.cc
dcmrt/libsrc/drtblds6.cc
dcmrt/libsrc/drtbldts.cc
dcmrt/libsrc/drtbrcss.cc
dcmrt/libsrc/drtbrdrs.cc
dcmrt/libsrc/drtbrs.cc
dcmrt/libsrc/drtbs.cc
dcmrt/libsrc/drtbss.cc
dcmrt/libsrc/drtbvcps.cc
dcmrt/libsrc/drtcbars.cc
dcmrt/libsrc/drtccs.cc
dcmrt/libsrc/drtcctus.cc
dcmrt/libsrc/drtcdrs.cc
dcmrt/libsrc/drtces.cc
dcmrt/libsrc/drtcgis.cc [new file with mode: 0644]
dcmrt/libsrc/drtchs.cc
dcmrt/libsrc/drtcims.cc
dcmrt/libsrc/drtcis.cc
dcmrt/libsrc/drtcncs.cc
dcmrt/libsrc/drtcos.cc
dcmrt/libsrc/drtcpas.cc
dcmrt/libsrc/drtcpis.cc
dcmrt/libsrc/drtcps.cc
dcmrt/libsrc/drtcs.cc
dcmrt/libsrc/drtcsas.cc
dcmrt/libsrc/drtcshs.cc
dcmrt/libsrc/drtcsis.cc
dcmrt/libsrc/drtcss.cc
dcmrt/libsrc/drtdcs.cc
dcmrt/libsrc/drtdddps.cc [new file with mode: 0644]
dcmrt/libsrc/drtddps.cc [new file with mode: 0644]
dcmrt/libsrc/drtdias.cc
dcmrt/libsrc/drtdimcs.cc
dcmrt/libsrc/drtdimrs.cc
dcmrt/libsrc/drtdirs.cc
dcmrt/libsrc/drtdose.cc
dcmrt/libsrc/drtdrs.cc
dcmrt/libsrc/drtds.cc
dcmrt/libsrc/drtdspcs.cc
dcmrt/libsrc/drtdss.cc
dcmrt/libsrc/drtdvhs.cc
dcmrt/libsrc/drtdvrrs.cc
dcmrt/libsrc/drteas.cc
dcmrt/libsrc/drtecs.cc
dcmrt/libsrc/drtes.cc
dcmrt/libsrc/drtfds.cc
dcmrt/libsrc/drtfes.cc
dcmrt/libsrc/drtfgs.cc
dcmrt/libsrc/drtfgss.cc
dcmrt/libsrc/drtfms.cc
dcmrt/libsrc/drtfsss.cc
dcmrt/libsrc/drtgas.cc
dcmrt/libsrc/drtgpis.cc [new file with mode: 0644]
dcmrt/libsrc/drthsdrs.cc
dcmrt/libsrc/drtiais.cc
dcmrt/libsrc/drtians.cc
dcmrt/libsrc/drtiblds.cc
dcmrt/libsrc/drtibls.cc
dcmrt/libsrc/drtibs.cc
dcmrt/libsrc/drticpds.cc
dcmrt/libsrc/drticps.cc
dcmrt/libsrc/drtics.cc
dcmrt/libsrc/drtiis.cc
dcmrt/libsrc/drtimage.cc
dcmrt/libsrc/drtionpl.cc
dcmrt/libsrc/drtiontr.cc
dcmrt/libsrc/drtipiqs.cc
dcmrt/libsrc/drtircs.cc
dcmrt/libsrc/drtiseis.cc
dcmrt/libsrc/drtitts.cc
dcmrt/libsrc/drtiwps.cc
dcmrt/libsrc/drtiws.cc
dcmrt/libsrc/drtlsds.cc
dcmrt/libsrc/drtlsds6.cc
dcmrt/libsrc/drtlsds7.cc
dcmrt/libsrc/drtmacds.cc
dcmrt/libsrc/drtmas.cc
dcmrt/libsrc/drtmdrs.cc
dcmrt/libsrc/drtmls.cc
dcmrt/libsrc/drtmps.cc
dcmrt/libsrc/drtmris.cc [new file with mode: 0644]
dcmrt/libsrc/drtmss.cc
dcmrt/libsrc/drtmucs.cc
dcmrt/libsrc/drtoas.cc
dcmrt/libsrc/drtois.cc
dcmrt/libsrc/drtopis.cc
dcmrt/libsrc/drtos.cc
dcmrt/libsrc/drtpbcs.cc
dcmrt/libsrc/drtpcs.cc
dcmrt/libsrc/drtpcxs.cc
dcmrt/libsrc/drtpdecs.cc
dcmrt/libsrc/drtpdeds.cc [new file with mode: 0644]
dcmrt/libsrc/drtpfms.cc
dcmrt/libsrc/drtpics.cc
dcmrt/libsrc/drtplan.cc
dcmrt/libsrc/drtporcs.cc
dcmrt/libsrc/drtporis.cc
dcmrt/libsrc/drtppcs.cc
dcmrt/libsrc/drtprsis.cc
dcmrt/libsrc/drtpscs.cc
dcmrt/libsrc/drtpsics.cc
dcmrt/libsrc/drtpss.cc
dcmrt/libsrc/drtpsss.cc
dcmrt/libsrc/drtpvis.cc
dcmrt/libsrc/drtqds.cc
dcmrt/libsrc/drtras.cc
dcmrt/libsrc/drtrbas2.cc
dcmrt/libsrc/drtrbas8.cc
dcmrt/libsrc/drtrbls.cc
dcmrt/libsrc/drtrbos1.cc
dcmrt/libsrc/drtrbos6.cc
dcmrt/libsrc/drtrbos7.cc
dcmrt/libsrc/drtrbs2.cc
dcmrt/libsrc/drtrbs4.cc
dcmrt/libsrc/drtrbs8.cc
dcmrt/libsrc/drtrcdrs.cc
dcmrt/libsrc/drtrcos.cc
dcmrt/libsrc/drtrcps.cc
dcmrt/libsrc/drtrcs.cc
dcmrt/libsrc/drtrdros.cc
dcmrt/libsrc/drtrdrs1.cc
dcmrt/libsrc/drtrdrs6.cc
dcmrt/libsrc/drtrdrs8.cc
dcmrt/libsrc/drtrds.cc
dcmrt/libsrc/drtrecs.cc
dcmrt/libsrc/drtrfgs.cc
dcmrt/libsrc/drtrfors.cc
dcmrt/libsrc/drtrics.cc
dcmrt/libsrc/drtrims.cc
dcmrt/libsrc/drtris.cc
dcmrt/libsrc/drtrlsds.cc
dcmrt/libsrc/drtrmdrs.cc
dcmrt/libsrc/drtrms.cc
dcmrt/libsrc/drtrmss6.cc
dcmrt/libsrc/drtrmss7.cc
dcmrt/libsrc/drtrpcs.cc
dcmrt/libsrc/drtrpis.cc
dcmrt/libsrc/drtrppcs.cc
dcmrt/libsrc/drtrpphs.cc
dcmrt/libsrc/drtrpps.cc
dcmrt/libsrc/drtrppss.cc
dcmrt/libsrc/drtrps.cc
dcmrt/libsrc/drtrris1.cc
dcmrt/libsrc/drtrris6.cc
dcmrt/libsrc/drtrris9.cc
dcmrt/libsrc/drtrrms.cc
dcmrt/libsrc/drtrros.cc
dcmrt/libsrc/drtrrpcs.cc
dcmrt/libsrc/drtrrros.cc
dcmrt/libsrc/drtrrs.cc
dcmrt/libsrc/drtrrshs.cc
dcmrt/libsrc/drtrrtps.cc
dcmrt/libsrc/drtrrtps3.cc
dcmrt/libsrc/drtrrtps4.cc
dcmrt/libsrc/drtrrtps5.cc
dcmrt/libsrc/drtrscs.cc
dcmrt/libsrc/drtrsers.cc
dcmrt/libsrc/drtrses.cc
dcmrt/libsrc/drtrshs.cc
dcmrt/libsrc/drtrshs6.cc
dcmrt/libsrc/drtrshs7.cc
dcmrt/libsrc/drtrsis.cc
dcmrt/libsrc/drtrsns.cc
dcmrt/libsrc/drtrsos.cc
dcmrt/libsrc/drtrsrs.cc
dcmrt/libsrc/drtrss.cc
dcmrt/libsrc/drtrsss.cc
dcmrt/libsrc/drtrsts.cc
dcmrt/libsrc/drtrtrs2.cc
dcmrt/libsrc/drtrtrs4.cc
dcmrt/libsrc/drtrvis.cc
dcmrt/libsrc/drtrws.cc
dcmrt/libsrc/drtrwvms.cc
dcmrt/libsrc/drtscris.cc
dcmrt/libsrc/drtscs.cc [new file with mode: 0644]
dcmrt/libsrc/drtsdcs.cc
dcmrt/libsrc/drtsds.cc
dcmrt/libsrc/drtshds.cc
dcmrt/libsrc/drtsins.cc [new file with mode: 0644]
dcmrt/libsrc/drtsis.cc
dcmrt/libsrc/drtsns.cc
dcmrt/libsrc/drtspccs.cc
dcmrt/libsrc/drtspcs.cc
dcmrt/libsrc/drtspgis.cc [new file with mode: 0644]
dcmrt/libsrc/drtsptcs.cc [new file with mode: 0644]
dcmrt/libsrc/drtss.cc
dcmrt/libsrc/drtssrcs.cc [new file with mode: 0644]
dcmrt/libsrc/drtssrs.cc
dcmrt/libsrc/drtsss.cc [new file with mode: 0644]
dcmrt/libsrc/drtstrct.cc
dcmrt/libsrc/drttms0.cc
dcmrt/libsrc/drttms9.cc
dcmrt/libsrc/drttreat.cc
dcmrt/libsrc/drttscds.cc
dcmrt/libsrc/drttsibs.cc
dcmrt/libsrc/drttsmds.cc
dcmrt/libsrc/drttts.cc
dcmrt/libsrc/drtudis.cc [new file with mode: 0644]
dcmrt/libsrc/drtvls.cc
dcmrt/libsrc/drtwps.cc
dcmrt/libsrc/drtwrs.cc
dcmrt/libsrc/drtwrsrs.cc
dcmrt/libsrc/drtws.cc
dcmrt/libsrc/drtxrs.cc
dcmrt/tests/Makefile.dep
dcmseg/include/dcmtk/dcmseg/segdoc.h
dcmseg/libsrc/Makefile.dep
dcmseg/libsrc/segdoc.cc
dcmsr/apps/xml2dsr.cc
dcmsr/include/dcmtk/dcmsr/cmr/cid100.h
dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h
dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h
dcmsr/include/dcmtk/dcmsr/cmr/cid11.h
dcmsr/include/dcmtk/dcmsr/cmr/cid244.h
dcmsr/include/dcmtk/dcmsr/cmr/cid29.h
dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h
dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h
dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h
dcmsr/include/dcmtk/dcmsr/cmr/cid42.h
dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h
dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h
dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h
dcmsr/include/dcmtk/dcmsr/codes/dcm.h
dcmsr/include/dcmtk/dcmsr/codes/ncit.h
dcmsr/include/dcmtk/dcmsr/codes/umls.h
dcmsr/include/dcmtk/dcmsr/dsrcodvl.h
dcmsr/include/dcmtk/dcmsr/dsrdoc.h
dcmsr/include/dcmtk/dcmsr/dsrsoprf.h
dcmsr/include/dcmtk/dcmsr/dsrtlist.h
dcmsr/include/dcmtk/dcmsr/dsrtypes.h
dcmsr/include/dcmtk/dcmsr/dsrxmld.h
dcmsr/libcmr/cid100.cc
dcmsr/libcmr/cid10013.cc
dcmsr/libcmr/cid10033.cc
dcmsr/libcmr/cid11.cc
dcmsr/libcmr/cid244.cc
dcmsr/libcmr/cid29.cc
dcmsr/libcmr/cid4020.cc
dcmsr/libcmr/cid4021.cc
dcmsr/libcmr/cid4031.cc
dcmsr/libcmr/cid42.cc
dcmsr/libcmr/cid5000.cc
dcmsr/libcmr/cid6147.cc
dcmsr/libcmr/cid7021.cc
dcmsr/libcmr/cid7181.cc
dcmsr/libcmr/cid7445.cc
dcmsr/libcmr/cid7452.cc
dcmsr/libcmr/cid7453.cc
dcmsr/libcmr/cid7464.cc
dcmsr/libcmr/cid7469.cc
dcmsr/libsrc/dsrdoc.cc
dcmsr/libsrc/dsrtypes.cc
dcmsr/libsrc/dsrxmld.cc
dcmsr/tests/CMakeLists.txt
dcmsr/tests/Makefile.dep
dcmsr/tests/Makefile.in
dcmsr/tests/tests.cc
dcmsr/tests/tsrlist.cc [new file with mode: 0644]
dcmtract/docs/dcmtract.dox
dcmtract/libsrc/Makefile.dep
docs/CHANGES.361
doxygen/htmldocs.cfg
doxygen/htmldocs.dox
doxygen/manpages.cfg
doxygen/manpages/man1/dcm2pdf.1
doxygen/manpages/man1/dcm2pnm.1
doxygen/manpages/man1/dcm2xml.1
doxygen/manpages/man1/dcmcjpeg.1
doxygen/manpages/man1/dcmcjpls.1
doxygen/manpages/man1/dcmconv.1
doxygen/manpages/man1/dcmcrle.1
doxygen/manpages/man1/dcmdjpeg.1
doxygen/manpages/man1/dcmdjpls.1
doxygen/manpages/man1/dcmdrle.1
doxygen/manpages/man1/dcmdspfn.1
doxygen/manpages/man1/dcmdump.1
doxygen/manpages/man1/dcmftest.1
doxygen/manpages/man1/dcmgpdir.1
doxygen/manpages/man1/dcmj2pnm.1
doxygen/manpages/man1/dcml2pnm.1
doxygen/manpages/man1/dcmmkcrv.1
doxygen/manpages/man1/dcmmkdir.1
doxygen/manpages/man1/dcmmklut.1
doxygen/manpages/man1/dcmodify.1
doxygen/manpages/man1/dcmp2pgm.1
doxygen/manpages/man1/dcmprscp.1
doxygen/manpages/man1/dcmprscu.1
doxygen/manpages/man1/dcmpschk.1
doxygen/manpages/man1/dcmpsmk.1
doxygen/manpages/man1/dcmpsprt.1
doxygen/manpages/man1/dcmpsrcv.1
doxygen/manpages/man1/dcmpssnd.1
doxygen/manpages/man1/dcmqridx.1
doxygen/manpages/man1/dcmqrscp.1
doxygen/manpages/man1/dcmqrti.1
doxygen/manpages/man1/dcmquant.1
doxygen/manpages/man1/dcmrecv.1
doxygen/manpages/man1/dcmscale.1
doxygen/manpages/man1/dcmsend.1
doxygen/manpages/man1/dcmsign.1
doxygen/manpages/man1/dcod2lum.1
doxygen/manpages/man1/dconvlum.1
doxygen/manpages/man1/drtdump.1
doxygen/manpages/man1/dsr2html.1
doxygen/manpages/man1/dsr2xml.1
doxygen/manpages/man1/dsrdump.1
doxygen/manpages/man1/dump2dcm.1
doxygen/manpages/man1/echoscu.1
doxygen/manpages/man1/findscu.1
doxygen/manpages/man1/getscu.1
doxygen/manpages/man1/img2dcm.1
doxygen/manpages/man1/movescu.1
doxygen/manpages/man1/pdf2dcm.1
doxygen/manpages/man1/storescp.1
doxygen/manpages/man1/storescu.1
doxygen/manpages/man1/termscu.1
doxygen/manpages/man1/wlmscpfs.1
doxygen/manpages/man1/xml2dcm.1
doxygen/manpages/man1/xml2dsr.1
oflog/include/dcmtk/oflog/oflog.h
oflog/libsrc/oflog.cc
ofstd/include/dcmtk/ofstd/oftraits.h
ofstd/include/dcmtk/ofstd/oftuple.h
ofstd/include/dcmtk/ofstd/ofutil.h
ofstd/include/dcmtk/ofstd/ofvriant.h [new file with mode: 0644]
ofstd/include/dcmtk/ofstd/variadic/helpers.h [new file with mode: 0644]
ofstd/include/dcmtk/ofstd/variadic/variant.h [new file with mode: 0644]
ofstd/libsrc/ofstd.cc
ofstd/tests/CMakeLists.txt
ofstd/tests/Makefile.dep
ofstd/tests/Makefile.in
ofstd/tests/tests.cc
ofstd/tests/tthread.cc
ofstd/tests/tvariant.cc [new file with mode: 0644]

index 9fcca7799fa1f1ea0882fb31a062825dcd062cd4..b40f88befdcbd06db13750aaf7df2f84eda4c2bb 100755 (executable)
@@ -1,4 +1,4 @@
-IF(WIN32)
+IF(WIN32 AND NOT MINGW)
 
   # For Windows, we don't used FIND_PACKAGE because DCMTK usually is used with its
   # own set of 3rd-party support libraries that can be downloaded from DCMTK's
@@ -139,7 +139,7 @@ IF(WIN32)
     ENDIF(WITH_LIBICONVINC)
   ENDIF(DCMTK_WITH_ICONV)
 
-ELSE(WIN32)
+ELSE(WIN32 AND NOT MINGW)
 
   # Find TIFF
   IF(DCMTK_WITH_TIFF)
index b77a8560fc5490fbf7e86373e8865d1663722726..89188d274f59be538873c59450380c9c091c47b5 100644 (file)
@@ -33,15 +33,8 @@ SET(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS @DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS@)
 SET(DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS @DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS@)
 SET(DCMTK_WIDE_CHAR_MAIN_FUNCTION @DCMTK_WIDE_CHAR_MAIN_FUNCTION@)
 
-@DCMTK_INCLUDE_DIR_CONFIGS@
-
 SET_AND_CHECK(DCMTK_TARGETS "@PACKAGE_DCMTK_CMKDIR_CONFIG@/DCMTKTargets.cmake")
 
-SET(DCMTK_INCLUDE_DIRS "")
-FOREACH(module config ${DCMTK_MODULES})
-  LIST(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_${module}_INCLUDE_DIR})
-ENDFOREACH(module)
-
 @DCMTK_CONFIG_CODE@
 
 # Compatibility: This variable is deprecated
index e66ac8a03dd1209333394d8b5637982bd13e5c63..40d28d2e64029e14c33f5c5bc752c4ba5af5d6a0 100644 (file)
@@ -42,7 +42,7 @@ SET(DCMTK_MINOR_VERSION 6)
 SET(DCMTK_BUILD_VERSION 1)
 # The ABI is not guaranteed to be stable between different snapshots/releases,
 # so this particular version number is increased for each snapshot or release.
-SET(DCMTK_ABI_VERSION 9)
+SET(DCMTK_ABI_VERSION 10)
 
 # Package "release" settings (some are currently unused and, therefore, disabled)
 SET(DCMTK_PACKAGE_NAME "dcmtk")
@@ -212,7 +212,7 @@ IF(COMMAND CMAKE_POLICY)
 ENDIF(COMMAND CMAKE_POLICY)
 
 # pass optional build date to compiler
-ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-06-30\\\")
+ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-11-02\\\")
 
 # make OFString(NULL) safe by default
 ADD_DEFINITIONS(-DUSE_NULL_SAFE_OFSTRING)
index e79ed779d86f727bcbafd0cb697faf85acc07711..c1d92723cda38c68b430bfef334fb0d80e0e53aa 100644 (file)
@@ -15,7 +15,7 @@ INCLUDE(CMake/dcmtkPrepare.cmake NO_POLICY_SCOPE)
 
 SET(DCMTK_MODULES ofstd oflog dcmdata dcmimgle
   dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr
-  dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract
+  dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract dcmpmap
   CACHE STRING "List of modules that should be built.")
 
 #-----------------------------------------------------------------------------
index 83aaaf4d082c95fea7b60b6d43fd978dcf8aaa4c..19429f9d662b1843f3f7d5ca04907bdf1ea5563a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,39 +9,39 @@ include $(configdir)/Makefile.def
 
 .NOTPARALLEL:
 
-all:  config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all
+all:  config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all dcmpmap-all
 
-libsrc-all:  ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all
+libsrc-all:  ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all dcmpmap-libsrc-all
 
-tests-all:  config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all
+tests-all:  config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all dcmpmap-tests-all
 
-install:  config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmtk-install-doc install-man
+install:  config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmpmap-install dcmtk-install-doc install-man
 
 install-all: install install-lib install-html
 
-install-bin:  config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin
+install-bin:  config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin dcmpmap-install-bin
 
-install-doc:  config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc
+install-doc:  config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc dcmpmap-install-doc
 
-install-data:  config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data
+install-data:  config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data dcmpmap-install-data
 
-install-etc:  config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc
+install-etc:  config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc dcmpmap-install-etc
 
-install-lib:  config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib
+install-lib:  config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib dcmpmap-install-lib
 
-install-include:  config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include
+install-include:  config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include dcmpmap-install-include
 
-install-support:  config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support
+install-support:  config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support dcmpmap-install-support
 
 check: tests-all
        $(MAKE) -s check-nosilent
 
-check-nosilent:  config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check
+check-nosilent:  config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check dcmpmap-check
 
 check-exhaustive: tests-all
        $(MAKE) -s check-nosilent-exhaustive
 
-check-nosilent-exhaustive:  config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dcmtract-check-exhaustive
+check-nosilent-exhaustive:  config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dcmtract-check-exhaustive dcmpmap-check-exhaustive
 
 dcmtk-install-doc:
        $(configdir)/mkinstalldirs $(DESTDIR)$(docdir)
@@ -91,7 +91,7 @@ help:
        @echo ""
        @echo "The following modules are available:"
        @echo ""
-       @echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract"
+       @echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap"
 
 config-all:
        (cd config && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all)
@@ -873,6 +873,45 @@ dcmtract-check:
 dcmtract-check-exhaustive:
        (cd dcmtract && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive)
 
+dcmpmap-all:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all)
+
+dcmpmap-libsrc-all:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" libsrc-all)
+
+dcmpmap-tests-all:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" tests-all)
+
+dcmpmap-install:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install)
+
+dcmpmap-install-bin:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-bin)
+
+dcmpmap-install-doc:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-doc)
+
+dcmpmap-install-data:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-data)
+
+dcmpmap-install-etc:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-etc)
+
+dcmpmap-install-lib:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-lib)
+
+dcmpmap-install-include:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-include)
+
+dcmpmap-install-support:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-support)
+
+dcmpmap-check:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check)
+
+dcmpmap-check-exhaustive:
+       (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive)
+
 dependencies:
        -(cd config && $(MAKE) dependencies)
        (cd ofstd && $(MAKE) dependencies)
@@ -894,6 +933,7 @@ dependencies:
        (cd dcmpstat && $(MAKE) dependencies)
        (cd dcmrt && $(MAKE) dependencies)
        (cd dcmtract && $(MAKE) dependencies)
+       (cd dcmpmap && $(MAKE) dependencies)
 
 clean:
        (cd ofstd && $(MAKE) clean)
@@ -915,6 +955,7 @@ clean:
        (cd dcmpstat && $(MAKE) clean)
        (cd dcmrt && $(MAKE) clean)
        (cd dcmtract && $(MAKE) clean)
+       (cd dcmpmap && $(MAKE) clean)
        (cd doxygen && $(MAKE) clean)
        -(cd config && $(MAKE) clean)
        rm -f $(TRASH)
@@ -939,6 +980,7 @@ distclean:
        (cd dcmpstat && $(MAKE) distclean)
        (cd dcmrt && $(MAKE) distclean)
        (cd dcmtract && $(MAKE) distclean)
+       (cd dcmpmap && $(MAKE) distclean)
        (cd doxygen && $(MAKE) distclean)
        -(cd config && $(MAKE) distclean)
        rm -f $(TRASH)
diff --git a/README b/README
index d8317ef0bbaba9b0d4a83e3a13460ebcdef2729b..452a5de152838460e3dc8e1916721cf672094166 100644 (file)
--- a/README
+++ b/README
@@ -16,13 +16,15 @@ DCMTK contains the following sub-packages, each in its own sub-directory:
     dcmjpeg  - a compression/decompression library and utility apps
     dcmjpls  - a compression/decompression library and utility apps
     dcmnet   - a networking library and utility apps
+    dcmpmap  - a library for working with parametric map objects
     dcmpstat - a presentation state library and utility apps
     dcmqrdb  - an image database server
     dcmrt    - a radiation therapy library and utility apps
     dcmseg   - a library for working with segmentation objects
     dcmsign  - a digital signature library and utility apps
-    dcmsr    - a structured report library and utility apps
+    dcmsr    - a structured reporting library and utility apps
     dcmtls   - security extensions for the network library
+    dcmtract - a library for working with tractography results
     dcmwlm   - a modality worklist database server
     oflog    - a logging library based on log4cplus
     ofstd    - a library of general purpose classes
diff --git a/VERSION b/VERSION
index b0cf8e9c288f861dfbe6f40b3a32118d11301f6b..fccf8330d6a43b83eb086b12526ba7acd7a99fb7 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.6.1_20160630
+3.6.1_20161102
index cbec746a77bb48cfccb78fbece442c3ab9072d3f..f35932ca8e3f8f3e4cd5de118112bc58d410be61 100644 (file)
@@ -52,10 +52,10 @@ DEBUG = @DEBUG@
 #
 
 # We want the old behavior of OFString(NULL) for now, no crashes.
-GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-06-30\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS
+GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-11-02\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS
 
 #
-# ARCH defines special machine archtecture compiler settings
+# ARCH defines special machine architecture compiler settings
 # (e.g. -arch i386 on NeXT)
 #
 
index 698a4b11ddb9fb98980fa864a1441d88f94f42b5..16768209e2ef9223cbbbf937f6ad3175e50e3078 100644 (file)
@@ -1 +1 @@
-ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract
+ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap
index 4b1615977596c37f28bc60ad2acc58d7c2a6e622..e6cd3210e9272eff14b3949d57866ddb943938d4 100644 (file)
@@ -787,9 +787,15 @@ int main(int argc, char *argv[])
 
         cmd.beginOptionBlock();
         if (cmd.findOption("--dont-overwrite-uids"))
+        {
+            app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFFalse;
+        }
         if (cmd.findOption("--overwrite-uids"))
+        {
+            app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFTrue;
+        }
         cmd.endOptionBlock();
 
         /* output options */
index e0f8c86cfb9c030c767e54f828a174438878d130..362bf6c31a8452c300dc1303f2babe3ecc6dc406 100644 (file)
@@ -21,8 +21,8 @@
 # DICONDE (Digital Imaging and Communication in Nondestructive Evaluation) and
 # DICOS (Digital Imaging and Communications in Security) standard.
 #
-# Generated automatically from DICOM PS 3.6-2016c and PS 3.7-2016c
-# File created on 2016-06-13 09:52:04 by J. Riesmeier on thinkpad.
+# Generated automatically from DICOM PS 3.6-2016d and PS 3.7-2016d
+# File created on 2016-10-04 11:49:44 by J. Riesmeier on thinkpad.
 #
 # In addition, the data dictionary entries from the following final text
 # supplements and correction items (CP) have been incorporated:
 (0008,0123)    SQ      ContextGroupIdentificationSequence      1       DICOM
 (0008,0124)    SQ      MappingResourceIdentificationSequence   1       DICOM
 (0008,0201)    SH      TimezoneOffsetFromUTC   1       DICOM
+(0008,0220)    SQ      ResponsibleGroupCodeSequence    1       DICOM
+(0008,0221)    CS      EquipmentModality       1       DICOM
+(0008,0222)    LO      ManufacturerRelatedModelGroup   1       DICOM
 (0008,0300)    SQ      PrivateDataElementCharacteristicsSequence       1       DICOM
 (0008,0301)    US      PrivateGroupReference   1       DICOM
 (0008,0302)    LO      PrivateCreatorReference 1       DICOM
 (0008,0305)    SQ      DeidentificationActionSequence  1       DICOM
 (0008,0306)    US      IdentifyingPrivateElements      1-n     DICOM
 (0008,0307)    CS      DeidentificationAction  1       DICOM
+(0008,0308)    US      PrivateDataElement      1       DICOM
+(0008,0309)    UL      PrivateDataElementValueMultiplicity     1-3     DICOM
+(0008,030A)    CS      PrivateDataElementValueRepresentation   1       DICOM
+(0008,030B)    UL      PrivateDataElementNumberOfItems 1-2     DICOM
+(0008,030C)    UC      PrivateDataElementName  1       DICOM
+(0008,030D)    UC      PrivateDataElementKeyword       1       DICOM
+(0008,030E)    UT      PrivateDataElementDescription   1       DICOM
+(0008,030F)    UT      PrivateDataElementEncoding      1       DICOM
+(0008,0310)    SQ      PrivateDataElementDefinitionSequence    1       DICOM
 (0008,1010)    SH      StationName     1       DICOM
 (0008,1030)    LO      StudyDescription        1       DICOM
 (0008,1032)    SQ      ProcedureCodeSequence   1       DICOM
 (0010,1010)    AS      PatientAge      1       DICOM
 (0010,1020)    DS      PatientSize     1       DICOM
 (0010,1021)    SQ      PatientSizeCodeSequence 1       DICOM
+(0010,1022)    DS      PatientBodyMassIndex    1       DICOM
+(0010,1023)    DS      MeasuredAPDimension     1       DICOM
+(0010,1024)    DS      MeasuredLateralDimension        1       DICOM
 (0010,1030)    DS      PatientWeight   1       DICOM
 (0010,1040)    LO      PatientAddress  1       DICOM
 (0010,1060)    PN      PatientMotherBirthName  1       DICOM
 (0012,0083)    SQ      ConsentForClinicalTrialUseSequence      1       DICOM
 (0012,0084)    CS      DistributionType        1       DICOM
 (0012,0085)    CS      ConsentForDistributionFlag      1       DICOM
+(0012,0086)    DA      EthicsCommitteeApprovalEffectivenessStartDate   1       DICOM
+(0012,0087)    DA      EthicsCommitteeApprovalEffectivenessEndDate     1       DICOM
 (0014,0025)    ST      ComponentManufacturingProcedure 1       DICOM/DICONDE
 (0014,0028)    ST      ComponentManufacturer   1       DICOM/DICONDE
 (0014,0030)    DS      MaterialThickness       1-n     DICOM/DICONDE
 (0018,1006)    LO      GridID  1       DICOM
 (0018,1007)    LO      CassetteID      1       DICOM
 (0018,1008)    LO      GantryID        1       DICOM
+(0018,1009)    UT      UniqueDeviceIdentifier  1       DICOM
+(0018,100A)    SQ      UDISequence     1       DICOM
 (0018,1010)    LO      SecondaryCaptureDeviceID        1       DICOM
 (0018,1012)    DA      DateOfSecondaryCapture  1       DICOM
 (0018,1014)    TM      TimeOfSecondaryCapture  1       DICOM
 (0018,9320)    SH      ImageFilter     1       DICOM
 (0018,9321)    SQ      CTExposureSequence      1       DICOM
 (0018,9322)    FD      ReconstructionPixelSpacing      2       DICOM
-(0018,9323)    CS      ExposureModulationType  1       DICOM
+(0018,9323)    CS      ExposureModulationType  1-n     DICOM
 (0018,9324)    FD      EstimatedDoseSaving     1       DICOM
 (0018,9325)    SQ      CTXRayDetailsSequence   1       DICOM
 (0018,9326)    SQ      CTPositionSequence      1       DICOM
 (0018,980E)    SQ      TransducerBeamSteeringCodeSequence      1       DICOM
 (0018,980F)    SQ      TransducerApplicationCodeSequence       1       DICOM
 (0018,9810)    xs      ZeroVelocityPixelValue  1       DICOM
+(0018,9900)    LO      ReferenceLocationLabel  1       DICOM
+(0018,9901)    UT      ReferenceLocationDescription    1       DICOM
+(0018,9902)    SQ      ReferenceBasisCodeSequence      1       DICOM
+(0018,9903)    SQ      ReferenceGeometryCodeSequence   1       DICOM
+(0018,9904)    DS      OffsetDistance  1       DICOM
+(0018,9905)    CS      OffsetDirection 1       DICOM
+(0018,9906)    SQ      PotentialScheduledProtocolCodeSequence  1       DICOM
+(0018,9907)    SQ      PotentialRequestedProcedureCodeSequence 1       DICOM
+(0018,9908)    UC      PotentialReasonsForProcedure    1-n     DICOM
+(0018,9909)    SQ      PotentialReasonsForProcedureCodeSequence        1       DICOM
+(0018,990A)    UC      PotentialDiagnosticTasks        1-n     DICOM
+(0018,990B)    SQ      ContraindicationsCodeSequence   1       DICOM
+(0018,990C)    SQ      ReferencedDefinedProtocolSequence       1       DICOM
+(0018,990D)    SQ      ReferencedPerformedProtocolSequence     1       DICOM
+(0018,990E)    SQ      PredecessorProtocolSequence     1       DICOM
+(0018,990F)    UT      ProtocolPlanningInformation     1       DICOM
+(0018,9910)    UT      ProtocolDesignRationale 1       DICOM
+(0018,9911)    SQ      PatientSpecificationSequence    1       DICOM
+(0018,9912)    SQ      ModelSpecificationSequence      1       DICOM
+(0018,9913)    SQ      ParametersSpecificationSequence 1       DICOM
+(0018,9914)    SQ      InstructionSequence     1       DICOM
+(0018,9915)    US      InstructionIndex        1       DICOM
+(0018,9916)    LO      InstructionText 1       DICOM
+(0018,9917)    UT      InstructionDescription  1       DICOM
+(0018,9918)    CS      InstructionPerformedFlag        1       DICOM
+(0018,9919)    DT      InstructionPerformedDateTime    1       DICOM
+(0018,991A)    UT      InstructionPerformanceComment   1       DICOM
+(0018,991B)    SQ      PatientPositioningInstructionSequence   1       DICOM
+(0018,991C)    SQ      PositioningMethodCodeSequence   1       DICOM
+(0018,991D)    SQ      PositioningLandmarkSequence     1       DICOM
+(0018,991E)    UI      TargetFrameOfReferenceUID       1       DICOM
+(0018,991F)    SQ      AcquisitionProtocolElementSpecificationSequence 1       DICOM
+(0018,9920)    SQ      AcquisitionProtocolElementSequence      1       DICOM
+(0018,9921)    US      ProtocolElementNumber   1       DICOM
+(0018,9922)    LO      ProtocolElementName     1       DICOM
+(0018,9923)    UT      ProtocolElementCharacteristicsSummary   1       DICOM
+(0018,9924)    UT      ProtocolElementPurpose  1       DICOM
+(0018,9930)    CS      AcquisitionMotion       1       DICOM
+(0018,9931)    SQ      AcquisitionStartLocationSequence        1       DICOM
+(0018,9932)    SQ      AcquisitionEndLocationSequence  1       DICOM
+(0018,9933)    SQ      ReconstructionProtocolElementSpecificationSequence      1       DICOM
+(0018,9934)    SQ      ReconstructionProtocolElementSequence   1       DICOM
+(0018,9935)    SQ      StorageProtocolElementSpecificationSequence     1       DICOM
+(0018,9936)    SQ      StorageProtocolElementSequence  1       DICOM
+(0018,9937)    LO      RequestedSeriesDescription      1       DICOM
+(0018,9938)    US      SourceAcquisitionProtocolElementNumber  1-n     DICOM
+(0018,9939)    US      SourceAcquisitionBeamNumber     1-n     DICOM
+(0018,993A)    US      SourceReconstructionProtocolElementNumber       1-n     DICOM
+(0018,993B)    SQ      ReconstructionStartLocationSequence     1       DICOM
+(0018,993C)    SQ      ReconstructionEndLocationSequence       1       DICOM
+(0018,993D)    SQ      ReconstructionAlgorithmSequence 1       DICOM
+(0018,993E)    SQ      ReconstructionTargetCenterLocationSequence      1       DICOM
+(0018,9941)    UT      ImageFilterDescription  1       DICOM
+(0018,9942)    FD      CTDIvolNotificationTrigger      1       DICOM
+(0018,9943)    FD      DLPNotificationTrigger  1       DICOM
+(0018,9944)    CS      AutoKVPSelectionType    1       DICOM
+(0018,9945)    FD      AutoKVPUpperBound       1       DICOM
+(0018,9946)    FD      AutoKVPLowerBound       1       DICOM
+(0018,9947)    CS      ProtocolDefinedPatientPosition  1       DICOM
 (0018,A001)    SQ      ContributingEquipmentSequence   1       DICOM
 (0018,A002)    DT      ContributionDateTime    1       DICOM
 (0018,A003)    ST      ContributionDescription 1       DICOM
 (0020,0200)    UI      SynchronizationFrameOfReferenceUID      1       DICOM
 (0020,0242)    UI      SOPInstanceUIDOfConcatenationSource     1       DICOM
 (0020,1002)    IS      ImagesInAcquisition     1       DICOM
+(0020,103F)    LO      TargetPositionReferenceIndicator        1       DICOM
 (0020,1040)    LO      PositionReferenceIndicator      1       DICOM
 (0020,1041)    DS      SliceLocation   1       DICOM
 (0020,1200)    IS      NumberOfPatientRelatedStudies   1       DICOM
 (0070,031A)    UI      FiducialUID     1       DICOM
 (0070,031C)    SQ      FiducialSetSequence     1       DICOM
 (0070,031E)    SQ      FiducialSequence        1       DICOM
+(0070,031F)    SQ      FiducialsPropertyCategoryCodeSequence   1       DICOM
 (0070,0401)    US      GraphicLayerRecommendedDisplayCIELabValue       3       DICOM
 (0070,0402)    SQ      BlendingSequence        1       DICOM
 (0070,0403)    FL      RelativeOpacity 1       DICOM
 (0082,0035)    SQ      RecommendedDefaultValueSequence 1       DICOM
 (0082,0036)    CS      ConstraintViolationSignificance 1       DICOM
 (0082,0037)    UT      ConstraintViolationCondition    1       DICOM
+(0082,0038)    CS      ModifiableConstraintFlag        1       DICOM
 (0088,0130)    SH      StorageMediaFileSetID   1       DICOM
 (0088,0140)    UI      StorageMediaFileSetUID  1       DICOM
 (0088,0200)    SQ      IconImageSequence       1       DICOM
 (3006,00B6)    SQ      ROIElementalCompositionSequence 1       DICOM
 (3006,00B7)    US      ROIElementalCompositionAtomicNumber     1       DICOM
 (3006,00B8)    FL      ROIElementalCompositionAtomicMassFraction       1       DICOM
-(3006,00B9)    SQ      AdditionalRTROIIdentificationCodeSequence       1       DICOM
 (3006,00C6)    DS      FrameOfReferenceTransformationMatrix    16      DICOM
 (3006,00C8)    LO      FrameOfReferenceTransformationComment   1       DICOM
 (3008,0010)    SQ      MeasuredDoseReferenceSequence   1       DICOM
 (2130,0080)    SQ      RETIRED_PresentationLUTContentSequence  1       DICOM/retired
 (2130,00A0)    SQ      RETIRED_ProposedStudySequence   1       DICOM/retired
 (2130,00C0)    SQ      RETIRED_OriginalImageSequence   1       DICOM/retired
+(3006,00B9)    SQ      RETIRED_AdditionalRTROIIdentificationCodeSequence       1       DICOM/retired
 (3006,00C0)    SQ      RETIRED_FrameOfReferenceRelationshipSequence    1       DICOM/retired
 (3006,00C2)    UI      RETIRED_RelatedFrameOfReferenceUID      1       DICOM/retired
 (3006,00C4)    CS      RETIRED_FrameOfReferenceTransformationType      1       DICOM/retired
index 87606fc425a1fa3ece2645108b1c3f89b74ac6a6..a1c78079c376f7b928a65a6296f99b5f2d2c3f44 100644 (file)
@@ -4,7 +4,7 @@
 **
 **   User: joergr
 **   Host: thinkpad
-**   Date: 2016-06-13 09:57:12
+**   Date: 2016-10-04 12:15:57
 **   Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdeftag
 **
 **   From: ../data/dicom.dic
 
 #include "dcmtk/dcmdata/dctagkey.h"
 
-#define DCM_DICT_DEFTAG_BUILD_DATE "2016-06-13 09:57:12"
+#define DCM_DICT_DEFTAG_BUILD_DATE "2016-10-04 12:15:57"
 
 
 /*
 ** Fixed Tags in ascending (gggg,eeee) order.
-** Number of entries: 4085
+** Number of entries: 4166
 ** Tags with a repeating component (repeating tags) are listed later.
 */
 #define DCM_CommandGroupLength                   DcmTagKey(0x0000, 0x0000)
 #define DCM_ContextGroupIdentificationSequence   DcmTagKey(0x0008, 0x0123)
 #define DCM_MappingResourceIdentificationSequence DcmTagKey(0x0008, 0x0124)
 #define DCM_TimezoneOffsetFromUTC                DcmTagKey(0x0008, 0x0201)
+#define DCM_ResponsibleGroupCodeSequence         DcmTagKey(0x0008, 0x0220)
+#define DCM_EquipmentModality                    DcmTagKey(0x0008, 0x0221)
+#define DCM_ManufacturerRelatedModelGroup        DcmTagKey(0x0008, 0x0222)
 #define DCM_PrivateDataElementCharacteristicsSequence DcmTagKey(0x0008, 0x0300)
 #define DCM_PrivateGroupReference                DcmTagKey(0x0008, 0x0301)
 #define DCM_PrivateCreatorReference              DcmTagKey(0x0008, 0x0302)
 #define DCM_DeidentificationActionSequence       DcmTagKey(0x0008, 0x0305)
 #define DCM_IdentifyingPrivateElements           DcmTagKey(0x0008, 0x0306)
 #define DCM_DeidentificationAction               DcmTagKey(0x0008, 0x0307)
+#define DCM_PrivateDataElement                   DcmTagKey(0x0008, 0x0308)
+#define DCM_PrivateDataElementValueMultiplicity  DcmTagKey(0x0008, 0x0309)
+#define DCM_PrivateDataElementValueRepresentation DcmTagKey(0x0008, 0x030a)
+#define DCM_PrivateDataElementNumberOfItems      DcmTagKey(0x0008, 0x030b)
+#define DCM_PrivateDataElementName               DcmTagKey(0x0008, 0x030c)
+#define DCM_PrivateDataElementKeyword            DcmTagKey(0x0008, 0x030d)
+#define DCM_PrivateDataElementDescription        DcmTagKey(0x0008, 0x030e)
+#define DCM_PrivateDataElementEncoding           DcmTagKey(0x0008, 0x030f)
+#define DCM_PrivateDataElementDefinitionSequence DcmTagKey(0x0008, 0x0310)
 #define DCM_RETIRED_NetworkID                    DcmTagKey(0x0008, 0x1000)
 #define DCM_StationName                          DcmTagKey(0x0008, 0x1010)
 #define DCM_StudyDescription                     DcmTagKey(0x0008, 0x1030)
 #define DCM_PatientAge                           DcmTagKey(0x0010, 0x1010)
 #define DCM_PatientSize                          DcmTagKey(0x0010, 0x1020)
 #define DCM_PatientSizeCodeSequence              DcmTagKey(0x0010, 0x1021)
+#define DCM_PatientBodyMassIndex                 DcmTagKey(0x0010, 0x1022)
+#define DCM_MeasuredAPDimension                  DcmTagKey(0x0010, 0x1023)
+#define DCM_MeasuredLateralDimension             DcmTagKey(0x0010, 0x1024)
 #define DCM_PatientWeight                        DcmTagKey(0x0010, 0x1030)
 #define DCM_PatientAddress                       DcmTagKey(0x0010, 0x1040)
 #define DCM_RETIRED_InsurancePlanIdentification  DcmTagKey(0x0010, 0x1050)
 #define DCM_ConsentForClinicalTrialUseSequence   DcmTagKey(0x0012, 0x0083)
 #define DCM_DistributionType                     DcmTagKey(0x0012, 0x0084)
 #define DCM_ConsentForDistributionFlag           DcmTagKey(0x0012, 0x0085)
+#define DCM_EthicsCommitteeApprovalEffectivenessStartDate DcmTagKey(0x0012, 0x0086)
+#define DCM_EthicsCommitteeApprovalEffectivenessEndDate DcmTagKey(0x0012, 0x0087)
 #define DCM_RETIRED_CADFileFormat                DcmTagKey(0x0014, 0x0023)
 #define DCM_RETIRED_ComponentReferenceSystem     DcmTagKey(0x0014, 0x0024)
 #define DCM_ComponentManufacturingProcedure      DcmTagKey(0x0014, 0x0025)
 #define DCM_GridID                               DcmTagKey(0x0018, 0x1006)
 #define DCM_CassetteID                           DcmTagKey(0x0018, 0x1007)
 #define DCM_GantryID                             DcmTagKey(0x0018, 0x1008)
+#define DCM_UniqueDeviceIdentifier               DcmTagKey(0x0018, 0x1009)
+#define DCM_UDISequence                          DcmTagKey(0x0018, 0x100a)
 #define DCM_SecondaryCaptureDeviceID             DcmTagKey(0x0018, 0x1010)
 #define DCM_RETIRED_HardcopyCreationDeviceID     DcmTagKey(0x0018, 0x1011)
 #define DCM_DateOfSecondaryCapture               DcmTagKey(0x0018, 0x1012)
 #define DCM_TransducerBeamSteeringCodeSequence   DcmTagKey(0x0018, 0x980e)
 #define DCM_TransducerApplicationCodeSequence    DcmTagKey(0x0018, 0x980f)
 #define DCM_ZeroVelocityPixelValue               DcmTagKey(0x0018, 0x9810)
+#define DCM_ReferenceLocationLabel               DcmTagKey(0x0018, 0x9900)
+#define DCM_ReferenceLocationDescription         DcmTagKey(0x0018, 0x9901)
+#define DCM_ReferenceBasisCodeSequence           DcmTagKey(0x0018, 0x9902)
+#define DCM_ReferenceGeometryCodeSequence        DcmTagKey(0x0018, 0x9903)
+#define DCM_OffsetDistance                       DcmTagKey(0x0018, 0x9904)
+#define DCM_OffsetDirection                      DcmTagKey(0x0018, 0x9905)
+#define DCM_PotentialScheduledProtocolCodeSequence DcmTagKey(0x0018, 0x9906)
+#define DCM_PotentialRequestedProcedureCodeSequence DcmTagKey(0x0018, 0x9907)
+#define DCM_PotentialReasonsForProcedure         DcmTagKey(0x0018, 0x9908)
+#define DCM_PotentialReasonsForProcedureCodeSequence DcmTagKey(0x0018, 0x9909)
+#define DCM_PotentialDiagnosticTasks             DcmTagKey(0x0018, 0x990a)
+#define DCM_ContraindicationsCodeSequence        DcmTagKey(0x0018, 0x990b)
+#define DCM_ReferencedDefinedProtocolSequence    DcmTagKey(0x0018, 0x990c)
+#define DCM_ReferencedPerformedProtocolSequence  DcmTagKey(0x0018, 0x990d)
+#define DCM_PredecessorProtocolSequence          DcmTagKey(0x0018, 0x990e)
+#define DCM_ProtocolPlanningInformation          DcmTagKey(0x0018, 0x990f)
+#define DCM_ProtocolDesignRationale              DcmTagKey(0x0018, 0x9910)
+#define DCM_PatientSpecificationSequence         DcmTagKey(0x0018, 0x9911)
+#define DCM_ModelSpecificationSequence           DcmTagKey(0x0018, 0x9912)
+#define DCM_ParametersSpecificationSequence      DcmTagKey(0x0018, 0x9913)
+#define DCM_InstructionSequence                  DcmTagKey(0x0018, 0x9914)
+#define DCM_InstructionIndex                     DcmTagKey(0x0018, 0x9915)
+#define DCM_InstructionText                      DcmTagKey(0x0018, 0x9916)
+#define DCM_InstructionDescription               DcmTagKey(0x0018, 0x9917)
+#define DCM_InstructionPerformedFlag             DcmTagKey(0x0018, 0x9918)
+#define DCM_InstructionPerformedDateTime         DcmTagKey(0x0018, 0x9919)
+#define DCM_InstructionPerformanceComment        DcmTagKey(0x0018, 0x991a)
+#define DCM_PatientPositioningInstructionSequence DcmTagKey(0x0018, 0x991b)
+#define DCM_PositioningMethodCodeSequence        DcmTagKey(0x0018, 0x991c)
+#define DCM_PositioningLandmarkSequence          DcmTagKey(0x0018, 0x991d)
+#define DCM_TargetFrameOfReferenceUID            DcmTagKey(0x0018, 0x991e)
+#define DCM_AcquisitionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x991f)
+#define DCM_AcquisitionProtocolElementSequence   DcmTagKey(0x0018, 0x9920)
+#define DCM_ProtocolElementNumber                DcmTagKey(0x0018, 0x9921)
+#define DCM_ProtocolElementName                  DcmTagKey(0x0018, 0x9922)
+#define DCM_ProtocolElementCharacteristicsSummary DcmTagKey(0x0018, 0x9923)
+#define DCM_ProtocolElementPurpose               DcmTagKey(0x0018, 0x9924)
+#define DCM_AcquisitionMotion                    DcmTagKey(0x0018, 0x9930)
+#define DCM_AcquisitionStartLocationSequence     DcmTagKey(0x0018, 0x9931)
+#define DCM_AcquisitionEndLocationSequence       DcmTagKey(0x0018, 0x9932)
+#define DCM_ReconstructionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9933)
+#define DCM_ReconstructionProtocolElementSequence DcmTagKey(0x0018, 0x9934)
+#define DCM_StorageProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9935)
+#define DCM_StorageProtocolElementSequence       DcmTagKey(0x0018, 0x9936)
+#define DCM_RequestedSeriesDescription           DcmTagKey(0x0018, 0x9937)
+#define DCM_SourceAcquisitionProtocolElementNumber DcmTagKey(0x0018, 0x9938)
+#define DCM_SourceAcquisitionBeamNumber          DcmTagKey(0x0018, 0x9939)
+#define DCM_SourceReconstructionProtocolElementNumber DcmTagKey(0x0018, 0x993a)
+#define DCM_ReconstructionStartLocationSequence  DcmTagKey(0x0018, 0x993b)
+#define DCM_ReconstructionEndLocationSequence    DcmTagKey(0x0018, 0x993c)
+#define DCM_ReconstructionAlgorithmSequence      DcmTagKey(0x0018, 0x993d)
+#define DCM_ReconstructionTargetCenterLocationSequence DcmTagKey(0x0018, 0x993e)
+#define DCM_ImageFilterDescription               DcmTagKey(0x0018, 0x9941)
+#define DCM_CTDIvolNotificationTrigger           DcmTagKey(0x0018, 0x9942)
+#define DCM_DLPNotificationTrigger               DcmTagKey(0x0018, 0x9943)
+#define DCM_AutoKVPSelectionType                 DcmTagKey(0x0018, 0x9944)
+#define DCM_AutoKVPUpperBound                    DcmTagKey(0x0018, 0x9945)
+#define DCM_AutoKVPLowerBound                    DcmTagKey(0x0018, 0x9946)
+#define DCM_ProtocolDefinedPatientPosition       DcmTagKey(0x0018, 0x9947)
 #define DCM_ContributingEquipmentSequence        DcmTagKey(0x0018, 0xa001)
 #define DCM_ContributionDateTime                 DcmTagKey(0x0018, 0xa002)
 #define DCM_ContributionDescription              DcmTagKey(0x0018, 0xa003)
 #define DCM_RETIRED_AcquisitionsInStudy          DcmTagKey(0x0020, 0x1004)
 #define DCM_RETIRED_ImagesInStudy                DcmTagKey(0x0020, 0x1005)
 #define DCM_RETIRED_Reference                    DcmTagKey(0x0020, 0x1020)
+#define DCM_TargetPositionReferenceIndicator     DcmTagKey(0x0020, 0x103f)
 #define DCM_PositionReferenceIndicator           DcmTagKey(0x0020, 0x1040)
 #define DCM_SliceLocation                        DcmTagKey(0x0020, 0x1041)
 #define DCM_RETIRED_OtherStudyNumbers            DcmTagKey(0x0020, 0x1070)
 #define DCM_FiducialUID                          DcmTagKey(0x0070, 0x031a)
 #define DCM_FiducialSetSequence                  DcmTagKey(0x0070, 0x031c)
 #define DCM_FiducialSequence                     DcmTagKey(0x0070, 0x031e)
+#define DCM_FiducialsPropertyCategoryCodeSequence DcmTagKey(0x0070, 0x031f)
 #define DCM_GraphicLayerRecommendedDisplayCIELabValue DcmTagKey(0x0070, 0x0401)
 #define DCM_BlendingSequence                     DcmTagKey(0x0070, 0x0402)
 #define DCM_RelativeOpacity                      DcmTagKey(0x0070, 0x0403)
 #define DCM_RecommendedDefaultValueSequence      DcmTagKey(0x0082, 0x0035)
 #define DCM_ConstraintViolationSignificance      DcmTagKey(0x0082, 0x0036)
 #define DCM_ConstraintViolationCondition         DcmTagKey(0x0082, 0x0037)
+#define DCM_ModifiableConstraintFlag             DcmTagKey(0x0082, 0x0038)
 #define DCM_StorageMediaFileSetID                DcmTagKey(0x0088, 0x0130)
 #define DCM_StorageMediaFileSetUID               DcmTagKey(0x0088, 0x0140)
 #define DCM_IconImageSequence                    DcmTagKey(0x0088, 0x0200)
 #define DCM_ROIElementalCompositionSequence      DcmTagKey(0x3006, 0x00b6)
 #define DCM_ROIElementalCompositionAtomicNumber  DcmTagKey(0x3006, 0x00b7)
 #define DCM_ROIElementalCompositionAtomicMassFraction DcmTagKey(0x3006, 0x00b8)
-#define DCM_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9)
+#define DCM_RETIRED_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9)
 #define DCM_RETIRED_FrameOfReferenceRelationshipSequence DcmTagKey(0x3006, 0x00c0)
 #define DCM_RETIRED_RelatedFrameOfReferenceUID   DcmTagKey(0x3006, 0x00c2)
 #define DCM_RETIRED_FrameOfReferenceTransformationType DcmTagKey(0x3006, 0x00c4)
index 5aa0262f6de6c0d8c219125b5180d5e621dfa9a2..328c15fc5f36b2966330d7a1d665008d5c8d245f 100644 (file)
@@ -70,7 +70,7 @@ const unsigned short OFM_dcmiod   = 29;
 const unsigned short OFM_dcmseg   = 30;
 const unsigned short OFM_dcmfg    = 31;
 const unsigned short OFM_dcmtract = 32;
-
+const unsigned short OFM_dcmpmap  = 33;
 
 // condition constants
 
index c8b8e00dba4ddf70d3ff7e3f0171f36c0d2294ba..83590da1c113f1e5b17a815f03635bfa0297678f 100644 (file)
@@ -487,6 +487,8 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID
 #define UID_RETIRED_StandalonePETCurveStorage                      "1.2.840.10008.5.1.4.1.1.129"
 #define UID_EnhancedPETImageStorage                                "1.2.840.10008.5.1.4.1.1.130"
 #define UID_BasicStructuredDisplayStorage                          "1.2.840.10008.5.1.4.1.1.131"
+#define UID_CTDefinedProcedureProtocolStorage                      "1.2.840.10008.5.1.4.1.1.200.1"
+#define UID_CTPerformedProcedureProtocolStorage                    "1.2.840.10008.5.1.4.1.1.200.2"
 #define UID_RTImageStorage                                         "1.2.840.10008.5.1.4.1.1.481.1"
 #define UID_RTDoseStorage                                          "1.2.840.10008.5.1.4.1.1.481.2"
 #define UID_RTStructureSetStorage                                  "1.2.840.10008.5.1.4.1.1.481.3"
@@ -592,6 +594,11 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID
 #define UID_MOVEImplantTemplateGroupInformationModel               "1.2.840.10008.5.1.4.45.3"
 #define UID_GETImplantTemplateGroupInformationModel                "1.2.840.10008.5.1.4.45.4"
 
+// Defined Procedure Protocol Query/Retrieve
+#define UID_FINDDefinedProcedureProtocolInformationModel           "1.2.840.10008.5.1.4.20.1"
+#define UID_MOVEDefinedProcedureProtocolInformationModel           "1.2.840.10008.5.1.4.20.2"
+#define UID_GETDefinedProcedureProtocolInformationModel            "1.2.840.10008.5.1.4.20.3"
+
 // Print Management
 #define UID_BasicFilmSessionSOPClass                               "1.2.840.10008.5.1.1.1"
 #define UID_BasicFilmBoxSOPClass                                   "1.2.840.10008.5.1.1.2"
index 42ae3c2d797d2c025d68f0575d580c44e595c9f4..724a35889d831c076091881882ac099cb1ea1740 100644 (file)
@@ -4,7 +4,7 @@
 **
 **   User: joergr
 **   Host: thinkpad
-**   Date: 2016-06-13 09:57:11
+**   Date: 2016-10-04 12:15:57
 **   Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdictbi
 **
 **   From: ../data/dicom.dic
@@ -700,6 +700,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_SH, "TimezoneOffsetFromUTC", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0008, 0x0220, 0x0008, 0x0220,
+      EVR_SQ, "ResponsibleGroupCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0221, 0x0008, 0x0221,
+      EVR_CS, "EquipmentModality", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0222, 0x0008, 0x0222,
+      EVR_LO, "ManufacturerRelatedModelGroup", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0008, 0x0300, 0x0008, 0x0300,
       EVR_SQ, "PrivateDataElementCharacteristicsSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -732,6 +744,42 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_CS, "DeidentificationAction", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0008, 0x0308, 0x0008, 0x0308,
+      EVR_US, "PrivateDataElement", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0309, 0x0008, 0x0309,
+      EVR_UL, "PrivateDataElementValueMultiplicity", 1, 3, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030a, 0x0008, 0x030a,
+      EVR_CS, "PrivateDataElementValueRepresentation", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030b, 0x0008, 0x030b,
+      EVR_UL, "PrivateDataElementNumberOfItems", 1, 2, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030c, 0x0008, 0x030c,
+      EVR_UC, "PrivateDataElementName", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030d, 0x0008, 0x030d,
+      EVR_UC, "PrivateDataElementKeyword", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030e, 0x0008, 0x030e,
+      EVR_UT, "PrivateDataElementDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030f, 0x0008, 0x030f,
+      EVR_UT, "PrivateDataElementEncoding", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0310, 0x0008, 0x0310,
+      EVR_SQ, "PrivateDataElementDefinitionSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0008, 0x1000, 0x0008, 0x1000,
       EVR_AE, "RETIRED_NetworkID", 1, 1, "DICOM/retired",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -2102,6 +2150,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_SQ, "PatientSizeCodeSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0010, 0x1022, 0x0010, 0x1022,
+      EVR_DS, "PatientBodyMassIndex", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0010, 0x1023, 0x0010, 0x1023,
+      EVR_DS, "MeasuredAPDimension", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0010, 0x1024, 0x0010, 0x1024,
+      EVR_DS, "MeasuredLateralDimension", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0010, 0x1030, 0x0010, 0x1030,
       EVR_DS, "PatientWeight", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -2740,6 +2800,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_CS, "ConsentForDistributionFlag", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0012, 0x0086, 0x0012, 0x0086,
+      EVR_DA, "EthicsCommitteeApprovalEffectivenessStartDate", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0012, 0x0087, 0x0012, 0x0087,
+      EVR_DA, "EthicsCommitteeApprovalEffectivenessEndDate", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
 #ifdef ENABLE_PRIVATE_TAGS
   , { 0x0013, 0x0000, 0x0013, 0x0000,
       EVR_LT, "ModifyingPhysician", 1, 1, "PrivateTag",
@@ -3912,6 +3980,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_LO, "GantryID", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0018, 0x1009, 0x0018, 0x1009,
+      EVR_UT, "UniqueDeviceIdentifier", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x100a, 0x0018, 0x100a,
+      EVR_SQ, "UDISequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0018, 0x1010, 0x0018, 0x1010,
       EVR_LO, "SecondaryCaptureDeviceID", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -5885,7 +5961,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x0018, 0x9323, 0x0018, 0x9323,
-      EVR_CS, "ExposureModulationType", 1, 1, "DICOM",
+      EVR_CS, "ExposureModulationType", 1, -1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x0018, 0x9324, 0x0018, 0x9324,
@@ -6628,6 +6704,242 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_xs, "ZeroVelocityPixelValue", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0018, 0x9900, 0x0018, 0x9900,
+      EVR_LO, "ReferenceLocationLabel", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9901, 0x0018, 0x9901,
+      EVR_UT, "ReferenceLocationDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9902, 0x0018, 0x9902,
+      EVR_SQ, "ReferenceBasisCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9903, 0x0018, 0x9903,
+      EVR_SQ, "ReferenceGeometryCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9904, 0x0018, 0x9904,
+      EVR_DS, "OffsetDistance", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9905, 0x0018, 0x9905,
+      EVR_CS, "OffsetDirection", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9906, 0x0018, 0x9906,
+      EVR_SQ, "PotentialScheduledProtocolCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9907, 0x0018, 0x9907,
+      EVR_SQ, "PotentialRequestedProcedureCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9908, 0x0018, 0x9908,
+      EVR_UC, "PotentialReasonsForProcedure", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9909, 0x0018, 0x9909,
+      EVR_SQ, "PotentialReasonsForProcedureCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990a, 0x0018, 0x990a,
+      EVR_UC, "PotentialDiagnosticTasks", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990b, 0x0018, 0x990b,
+      EVR_SQ, "ContraindicationsCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990c, 0x0018, 0x990c,
+      EVR_SQ, "ReferencedDefinedProtocolSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990d, 0x0018, 0x990d,
+      EVR_SQ, "ReferencedPerformedProtocolSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990e, 0x0018, 0x990e,
+      EVR_SQ, "PredecessorProtocolSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990f, 0x0018, 0x990f,
+      EVR_UT, "ProtocolPlanningInformation", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9910, 0x0018, 0x9910,
+      EVR_UT, "ProtocolDesignRationale", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9911, 0x0018, 0x9911,
+      EVR_SQ, "PatientSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9912, 0x0018, 0x9912,
+      EVR_SQ, "ModelSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9913, 0x0018, 0x9913,
+      EVR_SQ, "ParametersSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9914, 0x0018, 0x9914,
+      EVR_SQ, "InstructionSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9915, 0x0018, 0x9915,
+      EVR_US, "InstructionIndex", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9916, 0x0018, 0x9916,
+      EVR_LO, "InstructionText", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9917, 0x0018, 0x9917,
+      EVR_UT, "InstructionDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9918, 0x0018, 0x9918,
+      EVR_CS, "InstructionPerformedFlag", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9919, 0x0018, 0x9919,
+      EVR_DT, "InstructionPerformedDateTime", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991a, 0x0018, 0x991a,
+      EVR_UT, "InstructionPerformanceComment", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991b, 0x0018, 0x991b,
+      EVR_SQ, "PatientPositioningInstructionSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991c, 0x0018, 0x991c,
+      EVR_SQ, "PositioningMethodCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991d, 0x0018, 0x991d,
+      EVR_SQ, "PositioningLandmarkSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991e, 0x0018, 0x991e,
+      EVR_UI, "TargetFrameOfReferenceUID", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991f, 0x0018, 0x991f,
+      EVR_SQ, "AcquisitionProtocolElementSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9920, 0x0018, 0x9920,
+      EVR_SQ, "AcquisitionProtocolElementSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9921, 0x0018, 0x9921,
+      EVR_US, "ProtocolElementNumber", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9922, 0x0018, 0x9922,
+      EVR_LO, "ProtocolElementName", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9923, 0x0018, 0x9923,
+      EVR_UT, "ProtocolElementCharacteristicsSummary", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9924, 0x0018, 0x9924,
+      EVR_UT, "ProtocolElementPurpose", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9930, 0x0018, 0x9930,
+      EVR_CS, "AcquisitionMotion", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9931, 0x0018, 0x9931,
+      EVR_SQ, "AcquisitionStartLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9932, 0x0018, 0x9932,
+      EVR_SQ, "AcquisitionEndLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9933, 0x0018, 0x9933,
+      EVR_SQ, "ReconstructionProtocolElementSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9934, 0x0018, 0x9934,
+      EVR_SQ, "ReconstructionProtocolElementSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9935, 0x0018, 0x9935,
+      EVR_SQ, "StorageProtocolElementSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9936, 0x0018, 0x9936,
+      EVR_SQ, "StorageProtocolElementSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9937, 0x0018, 0x9937,
+      EVR_LO, "RequestedSeriesDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9938, 0x0018, 0x9938,
+      EVR_US, "SourceAcquisitionProtocolElementNumber", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9939, 0x0018, 0x9939,
+      EVR_US, "SourceAcquisitionBeamNumber", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993a, 0x0018, 0x993a,
+      EVR_US, "SourceReconstructionProtocolElementNumber", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993b, 0x0018, 0x993b,
+      EVR_SQ, "ReconstructionStartLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993c, 0x0018, 0x993c,
+      EVR_SQ, "ReconstructionEndLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993d, 0x0018, 0x993d,
+      EVR_SQ, "ReconstructionAlgorithmSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993e, 0x0018, 0x993e,
+      EVR_SQ, "ReconstructionTargetCenterLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9941, 0x0018, 0x9941,
+      EVR_UT, "ImageFilterDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9942, 0x0018, 0x9942,
+      EVR_FD, "CTDIvolNotificationTrigger", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9943, 0x0018, 0x9943,
+      EVR_FD, "DLPNotificationTrigger", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9944, 0x0018, 0x9944,
+      EVR_CS, "AutoKVPSelectionType", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9945, 0x0018, 0x9945,
+      EVR_FD, "AutoKVPUpperBound", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9946, 0x0018, 0x9946,
+      EVR_FD, "AutoKVPLowerBound", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9947, 0x0018, 0x9947,
+      EVR_CS, "ProtocolDefinedPatientPosition", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0018, 0xa001, 0x0018, 0xa001,
       EVR_SQ, "ContributingEquipmentSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -11050,6 +11362,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_LO, "RETIRED_Reference", 1, -1, "DICOM/retired",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0020, 0x103f, 0x0020, 0x103f,
+      EVR_LO, "TargetPositionReferenceIndicator", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0020, 0x1040, 0x0020, 0x1040,
       EVR_LO, "PositionReferenceIndicator", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -21786,6 +22102,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_SQ, "FiducialSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0070, 0x031f, 0x0070, 0x031f,
+      EVR_SQ, "FiducialsPropertyCategoryCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0070, 0x0401, 0x0070, 0x0401,
       EVR_US, "GraphicLayerRecommendedDisplayCIELabValue", 3, 3, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -23074,6 +23394,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_UT, "ConstraintViolationCondition", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0082, 0x0038, 0x0082, 0x0038,
+      EVR_CS, "ModifiableConstraintFlag", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
 #ifdef ENABLE_PRIVATE_TAGS
   , { 0x0087, 0x0010, 0x0087, 0x0010,
       EVR_CS, "MediaType", 1, 1, "PrivateTag",
@@ -24757,7 +25081,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x3006, 0x00b9, 0x3006, 0x00b9,
-      EVR_SQ, "AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM",
+      EVR_SQ, "RETIRED_AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM/retired",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x3006, 0x00c0, 0x3006, 0x00c0,
index 18bbad10e44636d185cf32331148b0761b9f6b52..6da9f04b1c75075a6633fa0df878112d752d2526 100644 (file)
@@ -158,7 +158,9 @@ static const UIDNameMap uidNameMap[] = {
     { UID_ComputedRadiographyImageStorage,                     "ComputedRadiographyImageStorage" },
     { UID_ContentAssessmentResultsStorage,                     "ContentAssessmentResultsStorage" },
     { UID_CornealTopographyMapStorage,                         "CornealTopographyMapStorage" },
+    { UID_CTDefinedProcedureProtocolStorage,                   "CTDefinedProcedureProtocolStorage" },
     { UID_CTImageStorage,                                      "CTImageStorage" },
+    { UID_CTPerformedProcedureProtocolStorage,                 "CTPerformedProcedureProtocolStorage" },
     { UID_DeformableSpatialRegistrationStorage,                "DeformableSpatialRegistrationStorage" },
     { UID_DigitalIntraOralXRayImageStorageForPresentation,     "DigitalIntraOralXRayImageStorageForPresentation" },
     { UID_DigitalIntraOralXRayImageStorageForProcessing,       "DigitalIntraOralXRayImageStorageForProcessing" },
@@ -362,6 +364,11 @@ static const UIDNameMap uidNameMap[] = {
     { UID_MOVEImplantTemplateGroupInformationModel,            "MOVEImplantTemplateGroupInformationModel" },
     { UID_GETImplantTemplateGroupInformationModel,             "GETImplantTemplateGroupInformationModel" },
 
+    // Defined Procedure Protocol Query/Retrieve
+    { UID_FINDDefinedProcedureProtocolInformationModel,        "FINDDefinedProcedureProtocolInformationModel" },
+    { UID_MOVEDefinedProcedureProtocolInformationModel,        "MOVEDefinedProcedureProtocolInformationModel" },
+    { UID_GETDefinedProcedureProtocolInformationModel,         "GETDefinedProcedureProtocolInformationModel" },
+
     // Print
     { UID_BasicAnnotationBoxSOPClass,                          "BasicAnnotationBoxSOPClass" },
     { UID_BasicColorImageBoxSOPClass,                          "BasicColorImageBoxSOPClass" },
@@ -561,7 +568,9 @@ const char* dcmAllStorageSOPClassUIDs[] = {
     UID_ComputedRadiographyImageStorage,
     UID_ContentAssessmentResultsStorage,
     UID_CornealTopographyMapStorage,
+    UID_CTDefinedProcedureProtocolStorage,
     UID_CTImageStorage,
+    UID_CTPerformedProcedureProtocolStorage,
     UID_DeformableSpatialRegistrationStorage,
     UID_DigitalIntraOralXRayImageStorageForPresentation,
     UID_DigitalIntraOralXRayImageStorageForProcessing,
@@ -823,6 +832,8 @@ const char* dcmLongSCUStorageSOPClassUIDs[] = {
 //  UID_CompositingPlanarMPRVolumetricPresentationStateStorage,
 //  UID_ContentAssessmentResultsStorage,
 //  UID_CornealTopographyMapStorage,
+//  UID_CTDefinedProcedureProtocolStorage,
+//  UID_CTPerformedProcedureProtocolStorage,
 //  UID_ExtensibleSRStorage,
 //  UID_GrayscalePlanarMPRVolumetricPresentationStateStorage
 //  UID_LegacyConvertedEnhancedCTImageStorage,
@@ -1085,7 +1096,9 @@ static const DcmModalityTable modalities[] = {
     { UID_ComputedRadiographyImageStorage,                         "CR",  2048 * 2048 * 2 },
     { UID_ContentAssessmentResultsStorage,                         "AS",  4096 },
     { UID_CornealTopographyMapStorage,                             "CM",  512 * 512 },
+    { UID_CTDefinedProcedureProtocolStorage,                       "PPd", 4096 },
     { UID_CTImageStorage,                                          "CT",  512 * 512 * 2 },
+    { UID_CTPerformedProcedureProtocolStorage,                     "PPp", 4096 },
     { UID_DeformableSpatialRegistrationStorage,                    "RGd", 4096 },
     { UID_DigitalIntraOralXRayImageStorageForPresentation,         "DXo", 1024 * 1024 * 2 },
     { UID_DigitalIntraOralXRayImageStorageForProcessing,           "DPo", 1024 * 1024 * 2 },
index 1b4c9c5120b675b9aac34860ed8533a3334e9ffb..24b312ebfc924fc377d05def27c6e4c8107c57c7 100644 (file)
@@ -169,41 +169,76 @@ public:
    */
   virtual OFCondition check() const;
 
-  /** Convenience function to add item representing reference to a file. No
+  /** Convenience function to add item representing reference to an object. No
    *  restrictions are set which frames or segments from this image has been
    *  actually used. However, such information could be added to the source
    *  image item later by modifying the resulting item being handed back to the
    *  caller.
-   * @param file Files that should be referenced by their UID, must be readable.
-   * @param purposeOfReference Code representing the purpose of reference
-   *        (Defined CID 7202)
-   * @param resultSourceImageItem The created derivation image item if
-   *        successful, NULL otherwise
-   * @return EC_Normal if adding works, error code otherwise
+   *  @param  file Files that should be referenced by their UID, must be readable.
+   *  @param  purposeOfReference Code representing the purpose of reference
+   *          (Defined CID 7202)
+   *  @param  resultSourceImageItem The created derivation image item if
+   *          successful, NULL otherwise
+   *  @return EC_Normal if adding works, error code otherwise
    */
   virtual OFCondition addSourceImageItem(const OFString& file,
                                          const CodeSequenceMacro& purposeOfReference,
                                          SourceImageItem*& resultSourceImageItem);
 
-  /** Convenience function to add items representing references to some files
+  /** Convenience function to add item representing reference to an object. No
+   *  restrictions are set which frames or segments from this image has been
+   *  actually used. However, such information could be added to the source
+   *  image item later by modifying the resulting item being handed back to the
+   *  caller.
+   *  @param  dataset DICOM dataset that should be referenced by their UID
+   *  @param  purposeOfReference Code representing the purpose of reference
+   *          (Defined CID 7202)
+   *  @param  resultSourceImageItem The created derivation image item if
+   *          successful, NULL otherwise
+   *  @return EC_Normal if adding works, error code otherwise
+   */
+  virtual OFCondition addSourceImageItem(DcmDataset *dataset,
+                                         const CodeSequenceMacro& purposeOfReference,
+                                         SourceImageItem*& resultSourceImageItem);
+
+  /** Convenience function to add items representing references to some objects
    *  which all have the same purpose of reference (code). No restrictions are
    *  set which frames or segments from those images have been actually used.
    *  However, such information could be added to the source image item later by
-    * modifying the resulting item handed back to the caller.
-    * @param files List of files that should be referenced by their UIDs.
-    * @param purposeOfReference Code representing the purpose of reference
-    *        (Defined CID 7202)
-    * @param resultSourceImageItems The created derivation image items (one per
-    *        file) if successful, NULL otherwise
-    * @param skipFileErrors If OFTrue, then files that could not be added will
-    *        not lead to error.
-    * @return EC_Normal if adding works, error code otherwise
+    modifying the resulting item handed back to the caller.
+   *  @param  files List of files that should be referenced by their UIDs.
+   *  @param  purposeOfReference Code representing the purpose of reference
+    *         (Defined CID 7202)
+   *  @param  resultSourceImageItems The created derivation image items (one per
+   *          file) if successful, NULL otherwise
+   *  @param  skipFileErrors If OFTrue, then files that could not be added will
+   *          not lead to error.
+    @return EC_Normal if adding works, error code otherwise
    */
   virtual OFCondition addSourceImageItems(const OFVector<OFString>& files,
                                           const CodeSequenceMacro& purposeOfReference,
                                           OFVector<SourceImageItem*>& resultSourceImageItems,
                                           const OFBool skipFileErrors = OFFalse);
 
+  /** Convenience function to add items representing references to some objects
+   *  which all have the same purpose of reference (code). No restrictions are
+   *  set which frames or segments from those images have been actually used.
+   *  However, such information could be added to the source image item later by
+   *  modifying the resulting item handed back to the caller.
+   *  @param  datasets List of datasets that should be referenced by their UIDs.
+   *  @param  purposeOfReference Code representing the purpose of reference
+   *          (Defined CID 7202)
+   *  @param  resultSourceImageItems The created derivation image items (one per
+   *          file) if successful, NULL otherwise
+   *  @param  skipErrors If OFTrue, then files that could not be added will
+   *          not lead to error.
+   *  @return EC_Normal if adding works, error code otherwise
+   */
+  virtual OFCondition addSourceImageItems(const OFVector<DcmDataset*>& datasets,
+                                          const CodeSequenceMacro& purposeOfReference,
+                                          OFVector<SourceImageItem*>& resultSourceImageItems,
+                                          const OFBool skipErrors = OFFalse);
+
    /** Get Derivation Description
     *  @param  value Reference to variable in which the value should be stored
     *  @param  pos Index of the value to get (0..vm-1), -1 for all components
index 09abd86c9321d87f966b11b3e053de63124c8552..2aea9849a6458a985ed6734a5bccfc048b7c1929 100644 (file)
@@ -279,14 +279,14 @@ public:
 
   /** Set one of the Dimension Index Values
    *  @param  value Value that should be set (lowest index starts with 1)
-   *  @param  pos The position of the value that should be set (lowest index
+   *  @param  dim The position of the value that should be set (lowest index
    *          starts with 0), i.e.\ select the 1st, 2nd, ..nth dimension
    *  @param  checkValue Check 'value'. Not evaluated (here for consistency
    *          with other setter functions).
    *  @return EC_Normal, if value was set, error otherwise
    */
   virtual OFCondition setDimensionIndexValues(const Uint32& value,
-                                              const unsigned int pos,
+                                              const unsigned int dim,
                                               const OFBool checkValue = OFTrue);
 
   /** Set Temporal Position Index
diff --git a/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h
new file mode 100644 (file)
index 0000000..c29a78e
--- /dev/null
@@ -0,0 +1,157 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class for managing Frame Anatomy Functional Group
+ *
+ */
+
+#ifndef FGFRAMEANATOMY_H
+#define FGFRAMEANATOMY_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcitem.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmfg/fgbase.h"
+
+/** Class representing the Frame Anatomy Functional Group Macro
+ */
+class DCMTK_DCMFG_EXPORT FGFrameAnatomy : public FGBase
+{
+public:
+
+  /** Enumerated values for attribute "Laterality"
+   */
+  enum LATERALITY
+  {
+    /// Undefined (e.g.\ value not set)
+    LATERALITY_UNDEFINED,
+    /// Invalid Laterality, e.g. when invalid value is read from file
+    LATERALITY_INVALID,
+    /// Right body part
+    LATERALITY_R,
+    /// Left body part
+    LATERALITY_L,
+    /// Unpaired body part
+    LATERALITY_UNPAIRED,
+    /// Both, left and right
+    LATERALITY_BOTH
+  };
+
+  /** Constructor, creates empty Frame Anatomy Functional Group
+   */
+  FGFrameAnatomy();
+
+  /** Virtual destructor, frees memory
+   */
+  virtual ~FGFrameAnatomy();
+
+  /** Returns a deep copy of this object
+   *  @return Deep copy of this object
+   */
+  virtual FGBase *clone() const;
+
+  /** Returns shared type of this group (can be shared or per-frame)
+   *  @return Always returns DcmFGTypes::EFGS_BOTH;
+   */
+  virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;}
+
+  /** Clear all data
+   */
+  virtual void clearData();
+
+  /** Check whether data in functional group is valid
+   *  @return EC_Normal if data is valid, error otherwise
+   */
+  virtual OFCondition check() const;
+
+  /** Read functional group from given item
+   *  @param  item The item to read from, must contain Frame Anatomy Sequence
+   *  @return EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& item);
+
+  /** Write functional group to given item
+   *  @param  item The item to write Frame Anatomy Sequence to
+   *  @return EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& item);
+
+  // --- get() functionality ---
+
+  /** Get Laterality
+   *  @param  value Reference to variable in which the value should be stored
+   *  @return EC_Normal if successful, an error code otherwise (i.e. if
+   *          value is LATERALITY_INVALID).
+   */
+  virtual OFCondition getLaterality(LATERALITY& value);
+
+  /** Get anatomy information
+   *  @return Reference to anatomic information
+   */
+  virtual GeneralAnatomyMacro& getAnatomy();
+
+  // --- set() functionality ---
+
+  /** Set Laterality
+   *  @param  value Value to be set
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLaterality(const LATERALITY& value);
+
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  functional groups (this and rhs parameter) are compared by value!
+   *  Both objects (this and rhs) need to have the same type (i.e.\ both
+   *  FGUnknown) to be comparable. This function is used in order
+   *  to decide whether a functional group already exists, or is new. This
+   *  is used in particular to find out whether a given functional group
+   *  can be shared (i.e.\ the same information already exists as shared
+   *  functional group) or is different from the same shared group. In that
+   *  case the shared functional group must be distributed into per-frame
+   *  functional groups, instead. The exact implementation for implementing
+   *  the comparison is not relevant. However, it must be a comparison
+   *  by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the this object, or all compared components match
+   *          but this component is shorter. Also returned if this type and
+   *          rhs type (DcmFGTypes::E_FGType) do not match.
+   *          1 if either the value of the first component that does not match
+   *          is greater in this object, or all compared components match
+   *          but this component is longer.
+   */
+  virtual int compare(const FGBase& rhs) const;
+
+  static LATERALITY str2Laterality(const OFString& lat);
+
+  static OFString laterality2Str(const LATERALITY lat);
+
+  static OFBool isLateralityValid(const LATERALITY lat);
+
+private:
+
+  /* Content of Frame Anatomy Macro */
+
+  /// Frame Laterality (DS, VM 1, Required type 1)
+  LATERALITY m_FrameLaterality;
+
+  /// General Anatomy Mandatory Macro
+  GeneralAnatomyMacro m_Anatomy;
+};
+
+#endif // FGFRAMEANATOMY_H
diff --git a/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h
new file mode 100644 (file)
index 0000000..5778ccd
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Identity Pixel Value Transformation Functional Group
+ *
+ */
+
+#ifndef FGIDENTPIXELTRANSFORM_H
+#define FGIDENTPIXELTRANSFORM_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcitem.h"
+#include "dcmtk/dcmfg/fgbase.h"
+#include "dcmtk/dcmdata/dcvrds.h"
+#include "dcmtk/dcmdata/dcvrlo.h"
+
+
+/** Class representing the Identity Pixel Value Transformation Functional Group Macro.
+ */
+class DCMTK_DCMFG_EXPORT FGIdentityPixelValueTransformation : public FGBase
+{
+public:
+
+  /** Constructor, creates Identity Pixel Value Transformation Functional Group.
+   *  All values (Rescale Slope, Intercept and Type) are set to their only valid
+   *  enumerated value listed in the standard, i.e. slope = 1, intercept = 0 and
+   *  type = "US".
+   */
+  FGIdentityPixelValueTransformation();
+
+  /** Destructor, frees memory
+   */
+  virtual ~FGIdentityPixelValueTransformation();
+
+  /** Returns a deep copy of this object
+   *  @return  Deep copy of this object
+   */
+  virtual FGBase *clone() const;
+
+  /** Get shared type of this functional group (can be both, per-frame and
+   *  shared)
+   *  @return Always returns EFGS_BOTH
+   */
+  virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;}
+
+  /** Clears all data
+   */
+  virtual void clearData();
+
+  /** Check whether functional group contains valid data
+   *  @return EC_Normal if data is valid, error otherwise
+   */
+  virtual OFCondition check() const;
+
+  /** Read functional group from given item, i.e.\ read Identity Pixel Value
+   *  Transformation Sequence. Clears existing data before reading.
+   *  @param  item The item to read from
+   *  @return EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& item);
+
+  /** Write functional group to given item, i.e.\ write Identity Pixel Value Transformation Sequence
+   *  @param  item The item to write to
+   *  @return EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& item);
+
+  /** Get RescaleIntercept
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRescaleIntercept(OFString &value,
+                                          const signed long pos = 0) const;
+
+  /** Get RescaleSlope
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRescaleSlope(OFString &value,
+                                      const signed long pos = 0) const;
+
+  /** Get RescaleType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRescaleType(OFString &value,
+                                     const signed long pos = 0) const;
+
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  functional groups (this and rhs parameter) are compared by value!
+   *  Both objects (this and rhs) need to have the same type (i.e.\ both
+   *  FGUnknown) to be comparable. This function is used in order
+   *  to decide whether a functional group already exists, or is new. This
+   *  is used in particular to find out whether a given functional group
+   *  can be shared (i.e.\ the same information already exists as shared
+   *  functional group) or is different from the same shared group. In that
+   *  case the shared functional group must be distributed into per-frame
+   *  functional groups, instead. The exact implementation for implementing
+   *  the comparison is not relevant. However, it must be a comparison
+   *  by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the this object, or all compared components match
+   *          but this component is shorter. Also returned if this type and
+   *          rhs type (DcmFGTypes::E_FGType) do not match.
+   *          1 if either the value of the first component that does not match
+   *          is greater in this object, or all compared components match
+   *          but this component is longer.
+   */
+  virtual int compare(const FGBase& rhs) const;
+
+protected:
+
+  /** Set RescaleIntercept. Hidden from user since value must always be equal
+   *  to 1 (automatically set on write).
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRescaleIntercept(const OFString &value,
+                                          const OFBool checkValue = OFTrue);
+
+  /** Set RescaleSlope. Hidden from user since value must always be equal
+   *  to 1 (automatically set on write).
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRescaleSlope(const OFString &value,
+                                      const OFBool checkValue = OFTrue);
+
+  /** Set RescaleType. Hidden from user since value must always be equal
+   *  to "US" for "unspecified" (automatically set on write).
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (LO) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRescaleType(const OFString &value,
+                                     const OFBool checkValue = OFTrue);
+
+private:
+
+  /* Content of Identity Pixel Value Transformation Functional Group Macro */
+
+  /// RescaleIntercept (DS, VM 1, Required type 1)
+  DcmDecimalString m_RescaleIntercept;
+
+  /// RescaleSlope (DS, VM 1, Required type 1)
+  DcmDecimalString m_RescaleSlope;
+
+  /// RescaleType (LO, VM 1, Required type 1)
+  DcmLongString m_RescaleType;
+};
+
+#endif // FGIDENTPIXELTRANSFORM_H
index 5af1df158e02e78812d48906a378ce14c4baab36..ba2c3da77c9144847316ac74eaa4f54b78a3eddf 100644 (file)
@@ -134,7 +134,7 @@ public:
 
   /** Add functional group that should be shared for all frames. This will
    *  delete all per-frame groups of the same type if existing.
-   *  @param  group   The group to be added (copy is performed)
+   *  @param  group   The group to be added. The group is copied.
    *  @return EC_Normal, if adding was successful, error otherwise
    */
   virtual OFCondition addShared(const FGBase& group);
@@ -148,7 +148,9 @@ public:
    *  overwritten.
    *  @param  frameNo The frame number this group should be added for (starts
    *          from 0)
-   *  @param  group The group to be added
+   *  @param  group The group to be added. The group is copied when adding,
+   *          so the ownership stays with the caller, no matter what the
+   *          method returns.
    *  @return EC_Normal, if adding was successful, error otherwise
    */
   virtual OFCondition addPerFrame(const Uint32 frameNo,
@@ -162,7 +164,8 @@ public:
   virtual OFBool deleteShared(const DcmFGTypes::E_FGType fgType);
 
   /** Deletes per-frame functional group of the given type for a specific frame
-   *  @param frameNo The frame number for the functional group of interest
+   *  @param frameNo The frame number for the functional group of interest.
+   *         First frame is frame 0.
    *  @param fgType The type of functional group to delete
    *  @return OFTrue if group existed and could be deleted, OFFalse (group did
    *          not exist) otherwise
@@ -173,10 +176,17 @@ public:
   /** Deletes per-frame functional group for all frames
    *  @param  fgType The type of functional group to delete
    *  @return Number of per-frame groups deleted (usually equal to number of
-   *          images)
+   *          frames)
    */
   size_t deletePerFrame(const DcmFGTypes::E_FGType fgType);
 
+  /** Deletes all functional groups for a specific frame
+   *  @param frameNo The frame number whose functional groups should be deleted.
+   *         First frame is frame 0.
+   *  @return Number of per-frame groups deleted for this frame
+   */
+  size_t deleteFrame(const Uint32 frameNo);
+
 protected:
 
   /** Get shared functional group based on its type
diff --git a/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h
new file mode 100644 (file)
index 0000000..fd46346
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Frame Type Functional Group
+ *
+ */
+
+#ifndef FGPARAMETRICMAPFRAMETYPE_H
+#define FGPARAMETRICMAPFRAMETYPE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcitem.h"
+#include "dcmtk/dcmfg/fgbase.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+
+/** Class representing the Parametric Map Frame Type Functional Group Macro.
+ */
+class DCMTK_DCMFG_EXPORT FGParametricMapFrameType : public FGBase
+{
+public:
+  /** Constructor, creates empty Parametric Map Frame Type Functional Group
+   */
+  FGParametricMapFrameType();
+
+  /** Destructor, frees memory
+   */
+  virtual ~FGParametricMapFrameType();
+
+  /** Returns a deep copy of this object
+   *  @return  Deep copy of this object
+   */
+  virtual FGBase *clone() const;
+
+  /** Get shared type of this functional group (can be both, per-frame and
+   *  shared)
+   *  @return Always returns EFGS_BOTH
+   */
+  virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;}
+
+  /** Clears all data
+   */
+  virtual void clearData();
+
+  /** Check whether functional group contains valid data
+   *  @return EC_Normal if data is valid, error otherwise
+   */
+  virtual OFCondition check() const;
+
+  /** Read functional group from given item, i.e.\ read Parametric Map Frame Type Sequence
+   *  @param  item The item to read from
+   *  @return EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& item);
+
+  /** Write functional group to given item, i.e.\ write Parametric Map Frame Type Sequence
+   *  @param  item The item to write to
+   *  @return EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& item);
+
+  /** Get FrameType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getFrameType(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Set FrameType
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (4) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFrameType(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  functional groups (this and rhs parameter) are compared by value!
+   *  Both objects (this and rhs) need to have the same type (i.e.\ both
+   *  FGUnknown) to be comparable. This function is used in order
+   *  to decide whether a functional group already exists, or is new. This
+   *  is used in particular to find out whether a given functional group
+   *  can be shared (i.e.\ the same information already exists as shared
+   *  functional group) or is different from the same shared group. In that
+   *  case the shared functional group must be distributed into per-frame
+   *  functional groups, instead. The exact implementation for implementing
+   *  the comparison is not relevant. However, it must be a comparison
+   *  by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the this object, or all compared components match
+   *          but this component is shorter. Also returned if this type and
+   *          rhs type (DcmFGTypes::E_FGType) do not match.
+   *          1 if either the value of the first component that does not match
+   *          is greater in this object, or all compared components match
+   *          but this component is longer.
+   */
+  virtual int compare(const FGBase& rhs) const;
+
+private:
+
+  /* Content of Parametric Map Frame Type Functional Group Macro */
+
+  /// FrameType (CS, VM 4, Required type 1)
+  DcmCodeString m_FrameType;
+};
+
+#endif // FGPARAMETRICMAPFRAMETYPE_H
index f585b2f5e53c16ce3054b501c237f5376b09ed89..0465b53f3fbaed85d531cef6c54673be36fdbba7 100644 (file)
@@ -27,6 +27,7 @@
 #include "dcmtk/dcmdata/dcitem.h"
 #include "dcmtk/dcmiod/modbase.h"
 #include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmiod/iodcontentitemmacro.h"
 
 /** Class representing the Real World Value Mapping Functional Group that
  *  specifies the mapping of stored values to associated Real World values
@@ -131,7 +132,7 @@ private:
  * LUT Explanation (LO, 1, 1)
  * LUT Label (SH, 1, 1)
  * Measurement Units Code Sequence (SQ, 1, 1)
- * Not yet supported: Quantity Definition Sequence (SQ, 1, 3)
+ * Quantity Definition Sequence (SQ, 1, 3)
  */
 class DCMTK_DCMFG_EXPORT FGRealWorldValueMapping::RWVMItem : public IODComponent
 {
@@ -153,6 +154,11 @@ public:
    */
   RWVMItem(IODComponent* parent = NULL);
 
+  /** Copy Constructor
+   *  @param  rhs The item to copy from
+   */
+  RWVMItem(const RWVMItem& rhs);
+
   /** Clone this class (perform deep copy)
    *  @return Clone of this class or NULL (e.g.\ if memory exhausted)
    */
@@ -229,6 +235,22 @@ public:
   virtual OFCondition getRealWorldValueLastValueMapped(Sint32 &value,
                                                        const unsigned long pos = 0) const;
 
+  /** Get Double Float Real World Value First Value Mapped
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64& value,
+                                                                   const unsigned long pos = 0) const;
+
+  /** Get Double Float Real World Value Last Value Mapped
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64& value,
+                                                                   const unsigned long pos = 0) const;
+
   /** Get Real World Value LUT Data
    *  @param  value Reference to variable in which the value should be stored
    *  @param  pos Index of the value to get (0..vm-1)
@@ -264,6 +286,12 @@ public:
    */
   virtual CodeSequenceMacro& getMeasurementUnitsCode();
 
+  /** Get a reference to the entire ConceptNameCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ConceptNameCodeSequence
+   */
+  virtual OFVector<ContentItemMacro*>& getEntireQuantityDefinitionSequence();
+
   // --- set() functionality ---
 
   /** Set Real World Value First Value Mapped
@@ -274,7 +302,7 @@ public:
    *          if enabled
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 &value,
+  virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 value,
                                                                 const OFBool checkValue = OFTrue);
 
   /** Set Real World Value First Value Mapped
@@ -296,7 +324,7 @@ public:
    *          if enabled
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 &value,
+  virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 value,
                                                                const OFBool checkValue = OFTrue);
 
   /** Set Real World Value Last Value Mapped
@@ -308,7 +336,25 @@ public:
    *  @return EC_Normal if successful, an error code otherwise
    */
   virtual OFCondition setRealWorldValueLastValueMappedSigned(const Sint16 &value,
-                                                        const OFBool checkValue = OFTrue);
+                                                             const OFBool checkValue = OFTrue);
+
+  /** Set Double Float Real World Value First Value Mapped
+   *  @param  value Value to be set
+   *  @param  checkValue Check 'value'. Does nothing, only for consistency with
+   *          other set() functions.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value,
+                                                                  const OFBool checkValue = OFTrue);
+
+  /** Set Double Float Real World Value Last Value Mapped
+   *  @param  value Value to be set
+   *  @param  checkValue Check 'value'. Does nothing, only for consistency with
+   *          other set() functions.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value,
+                                                                  const OFBool checkValue = OFTrue);
 
   /** Set Real World Value Intercept
    *  @param  value Value to be set
@@ -316,7 +362,7 @@ public:
    *          with other setter functions).
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueIntercept(const Float64& value,
+  virtual OFCondition setRealWorldValueIntercept(const Float64 value,
                                                  const OFBool checkValue = OFTrue);
 
   /** Set Real World Value Slope
@@ -325,7 +371,7 @@ public:
    *          with other setter functions).
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueSlope(const Float64& value,
+  virtual OFCondition setRealWorldValueSlope(const Float64 value,
                                              const OFBool checkValue = OFTrue);
 
   /** Set Real World Value LUT Data
@@ -367,7 +413,8 @@ private:
   /// Measurement Units Code Sequence
   CodeSequenceMacro m_MeasurementUnitsCode;
 
-  /// TODO Content Item Macro for Quantity Definition Sequence
+  /// Quantity Definition Sequence
+  OFVector<ContentItemMacro*> m_QuantityDefinitionSequence;
 };
 
 #endif // FGREALWORLDVALUEMAPPING_H
index 451cfe7cc38c547bb7ee1fb59689260d64803cff..22bdfca3a83c43b329120f5be5c7c0a3fcde416a 100644 (file)
@@ -48,7 +48,7 @@ extern DCMTK_DCMFG_EXPORT OFLogger DCM_dcmfgLogger;
  *  constant definitions  *
  *-----------------------*/
 
-/* Specific error conditions for module dcmfg.(TODO)
+/* Specific error conditions for module dcmfg.
  * These error codes can be used in addition to the general purpose
  * codes defined in module dcmdata.
  */
@@ -120,10 +120,14 @@ public:
     EFG_FRAMEPIXELSHIFT,
     /// "Frame VOI LUT" or "Frame VOI LUT with LUT" Macro (share same starting sequence)
     EFG_FRAMEVOILUTMETA,
+    /// Identity Pixel Value Transformation
+    EFG_IDENTITYPIXELVALUETRANSFORMATION,
     /// Image Data Type
     EFG_IMAGEDATATYPE,
     /// Irradiation Event Identification
     EFG_IRRADIATIONEVENTIDENT,
+    /// Parametric Map Frame Type
+    EFG_PARAMETRICMAPFRAMETYPE,
     /// Patient Orientation in Frame
     EFG_PATIENTORIENTINFRAME,
     /// Patient Physiological State
index 6e3e107d1f8fe372a8839df4ff5a470da46df909..a04b84a2191a6077992187cea8600ebf47c8cbe5 100644 (file)
@@ -76,8 +76,6 @@ public:
    */
   virtual ~FGStack();
 
-  // TODO add sorted iterators using views, for example
-
   /** Return const iterator to first frame (not sorted after stack position)
    *  @return Const iterator to first frame
    */
@@ -137,8 +135,6 @@ private:
   /// More than one frame can have the same in-stack position
   OFMap<Uint32, Uint32> m_FrameNumbers;
 
-  // TODO Maybe add a redundant data structures mapping in-stack positions
-  // to frame numbers in order to enable fast access?
 };
 
 #endif // STACKREADER_H
index c37d8683da510286eb5a2e5e652fc012896f67f9..6d2afe3d2f2b5756703d5fab351c6e90a0ebac44 100644 (file)
@@ -5,10 +5,13 @@ DCMTK_ADD_LIBRARY(dcmfg
   fgderimg
   fgfact
   fgfracon
+  fgframeanatomy
   fgframevoilut
+  fgidentpixeltransform
   fgimagedatatype
   fginterface
   fgpixmsr
+  fgparametricmapframetype
   fgplanor
   fgplanorvol
   fgplanpo
index 62c13c95f730a8cf6b086ccf39d48b4566e64d37..8617090dc00052e10f91b84d0303d76d3e9ac337 100644 (file)
@@ -429,6 +429,8 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -459,11 +461,9 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -494,13 +494,18 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \
- ../include/dcmtk/dcmfg/fgfracon.h ../include/dcmtk/dcmfg/fgframevoilut.h \
+ ../include/dcmtk/dcmfg/fgfracon.h \
+ ../include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../include/dcmtk/dcmfg/fgframevoilut.h \
+ ../include/dcmtk/dcmfg/fgidentpixeltransform.h \
  ../include/dcmtk/dcmfg/fgimagedatatype.h \
+ ../include/dcmtk/dcmfg/fgparametricmapframetype.h \
  ../include/dcmtk/dcmfg/fgpixmsr.h ../include/dcmtk/dcmfg/fgplanor.h \
  ../include/dcmtk/dcmfg/fgplanorvol.h ../include/dcmtk/dcmfg/fgplanpo.h \
  ../include/dcmtk/dcmfg/fgplanposvol.h ../include/dcmtk/dcmfg/fgseg.h \
  ../include/dcmtk/dcmfg/fgusimagedescription.h \
- ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h
+ ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
 fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
@@ -561,6 +566,8 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -590,11 +597,9 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -623,6 +628,131 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \
  ../include/dcmtk/dcmfg/fgdefine.h
+fgframeanatomy.o: fgframeanatomy.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \
+ ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
 fgframevoilut.o: fgframevoilut.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
@@ -684,6 +814,8 @@ fgframevoilut.o: fgframevoilut.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -714,11 +846,132 @@ fgframevoilut.o: fgframevoilut.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmfg/fgdefine.h
+fgidentpixeltransform.o: fgidentpixeltransform.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -807,6 +1060,8 @@ fgimagedatatype.o: fgimagedatatype.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -837,11 +1092,9 @@ fgimagedatatype.o: fgimagedatatype.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -933,6 +1186,8 @@ fginterface.o: fginterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
@@ -960,11 +1215,9 @@ fginterface.o: fginterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -994,6 +1247,129 @@ fginterface.o: fginterface.cc \
  ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \
  ../include/dcmtk/dcmfg/fg.h ../include/dcmtk/dcmfg/fgbase.h \
  ../include/dcmtk/dcmfg/fgfact.h
+fgparametricmapframetype.o: fgparametricmapframetype.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmfg/fgdefine.h
 fgpixmsr.o: fgpixmsr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmfg/fgpixmsr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
@@ -1300,6 +1676,8 @@ fgplanorvol.o: fgplanorvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -1330,11 +1708,9 @@ fgplanorvol.o: fgplanorvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -1544,6 +1920,8 @@ fgplanposvol.o: fgplanposvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -1574,11 +1952,9 @@ fgplanposvol.o: fgplanposvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -1730,6 +2106,7 @@ fgrealworldvaluemapping.o: fgrealworldvaluemapping.cc \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
 fgseg.o: fgseg.cc ../../config/include/dcmtk/config/osconfig.h \
@@ -2048,6 +2425,8 @@ fgusimagedescription.o: fgusimagedescription.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -2078,11 +2457,9 @@ fgusimagedescription.o: fgusimagedescription.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -2185,6 +2562,8 @@ stackinterface.o: stackinterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -2215,11 +2594,9 @@ stackinterface.o: stackinterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
index c7fe5da5256d891f7250710e06e80894e90e05b1..31ab951eea8aa2b4b85e693efe6178f612699703 100644 (file)
@@ -53,7 +53,8 @@ FGBase* FunctionalGroups::find(const DcmFGTypes::E_FGType fgType)
 {
   FGBase* group = NULL;
   FunctionalGroups::iterator it = m_groups.find(fgType);
-  if ( it != m_groups.end() )
+  FunctionalGroups::iterator end = m_groups.end();
+  if ( it != end )
   {
     group = (*it).second;
   }
index 0e5852605df6d0abe71ca3b58159cebddff50315..3cb43c364e958eac6614dd6aebd174cb15a38eb1 100644 (file)
@@ -162,7 +162,6 @@ OFCondition FGUnknown::write(DcmItem& item)
 
 OFCondition FGUnknown::check() const
 {
-  // TODO
   return EC_Normal;
 }
 
index e8776da3e1cdefa35f3035a991bfa0fa9c5fc520..c517ea6f7e677881975d9d719da2146f449c2dfb 100644 (file)
@@ -157,8 +157,15 @@ void FGDerivationImage::clearData()
 
 OFCondition FGDerivationImage::check() const
 {
-  // TODO
-  return EC_Normal;
+  OFCondition result;
+  OFVector<DerivationImageItem*>::const_iterator it = m_DerivationImageItems.begin();
+  while ( (it != m_DerivationImageItems.end()) && result.good() )
+  {
+    result = (*it)->check();
+    it++;
+  }
+
+  return result;
 }
 
 DerivationImageItem& DerivationImageItem::operator=(const DerivationImageItem& rhs)
@@ -243,7 +250,7 @@ OFCondition FGDerivationImage::read(DcmItem& item)
 
 OFCondition FGDerivationImage::write(DcmItem& item)
 {
-  OFCondition result = EC_Normal;
+  OFCondition result = check();
   DcmIODUtil::writeSubSequence<OFVector<DerivationImageItem*> >
   ( result,
     DCM_DerivationImageSequence,
@@ -288,8 +295,13 @@ void SourceImageItem::clearData()
 
 OFCondition SourceImageItem::check() const
 {
-  // TODO
-  return EC_Normal;
+  OFCondition result = OFconst_cast(ImageSOPInstanceReferenceMacro*, &m_ImageSOPInstanceReference)->check();
+  if (result.bad())
+  {
+    return result;
+  }
+
+  return OFconst_cast(CodeSequenceMacro*, &m_PurposeOfReferenceCode)->check();
 }
 
 
@@ -351,7 +363,7 @@ OFCondition SourceImageItem::write(DcmItem& itemOfSourceImageSequence)
 }
 
 
-/* -- Class DerivationImages Implementation -- */
+/* -- Class DerivationImageItem Implementation -- */
 
 DerivationImageItem::DerivationImageItem()
   : m_DerivationDescription(DCM_DerivationDescription),
@@ -459,10 +471,28 @@ int DerivationImageItem::compare(const DerivationImageItem& rhs) const
 
 OFCondition DerivationImageItem::check() const
 {
-  // TODO
-  return EC_Normal;
-}
+  if (m_DerivationCodeItems.size() == 0)
+  {
+    DCMFG_ERROR("Derivation Code Sequence in Derivation Image Functional Group Macro must have one or more items");
+    return FG_EC_InvalidData;
+  }
 
+  OFCondition result;
+  OFVector<CodeSequenceMacro*>::const_iterator it = m_DerivationCodeItems.begin();
+  while (it != m_DerivationCodeItems.end() && result.good())
+  {
+    result = (*it)->check();
+    it++;
+  }
+
+  OFVector<SourceImageItem*>::const_iterator ref = m_SourceImageItems.begin();
+  while ((ref != m_SourceImageItems.end()) && result.good())
+  {
+    result = (*ref)->check();
+    ref++;
+  }
+  return result;
+}
 
 
 DerivationImageItem::~DerivationImageItem()
@@ -474,6 +504,23 @@ DerivationImageItem::~DerivationImageItem()
 OFCondition DerivationImageItem::addSourceImageItem(const OFString& file,
                                                     const CodeSequenceMacro& purposeOfReference,
                                                     SourceImageItem*& resultSourceImageItem)
+{
+  DcmFileFormat dcmff;
+  DcmDataset *dataset = NULL;
+  OFCondition result = dcmff.loadFile(file.c_str());
+  if (result.bad())
+  {
+    DCMFG_ERROR("Could not load file " << file << ": " << result.text());
+    return result;
+  }
+  dataset = dcmff.getDataset();
+  return addSourceImageItem(dataset, purposeOfReference, resultSourceImageItem);
+}
+
+
+OFCondition DerivationImageItem::addSourceImageItem(DcmDataset *dataset,
+                                                    const CodeSequenceMacro& purposeOfReference,
+                                                    SourceImageItem*& resultSourceImageItem)
 {
   // Create new source image item
   SourceImageItem *item = new SourceImageItem();
@@ -481,11 +528,18 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file,
   {
     return EC_MemoryExhausted;
   }
+
+  // check code validity
+  if ( OFconst_cast(CodeSequenceMacro*, &purposeOfReference)->check().bad() )
+  {
+    DCMFG_ERROR("Purpose of Reference code within item of Derivation Image Sequence is invalid");
+    return FG_EC_InvalidData;
+  }
+
   item->getPurposeOfReferenceCode() = purposeOfReference;
-  // TODO: Check code for completeness, and context group?
   resultSourceImageItem = NULL;
   OFString sopClass, sopInstance, ts;
-  OFCondition result = DcmDataUtil::getSOPInstanceFromFile(file, sopClass, sopInstance, ts /*ignored*/);
+  OFCondition result = DcmDataUtil::getSOPInstanceFromDataset(dataset, EXS_Unknown, sopClass, sopInstance, ts /*ignored*/);
   {
     if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPClassUID(sopClass);
     if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPInstanceUID(sopInstance);
@@ -495,6 +549,11 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file,
     m_SourceImageItems.push_back(item);
     resultSourceImageItem = item;
   }
+  else
+  {
+    delete item;
+  }
+
   return result;
 }
 
@@ -504,10 +563,35 @@ OFCondition DerivationImageItem::addSourceImageItems(const OFVector< OFString >&
                                                      OFVector<SourceImageItem*>& resultSourceImageItems,
                                                      const OFBool skipErrors)
 {
-  // Add files
+  DcmFileFormat dcmff;
   OFCondition result;
+  DcmDataset *dataset = NULL;
+  OFVector<DcmDataset*> datasets;
   OFVector<OFString>::const_iterator it = files.begin();
   while (it != files.end())
+  {
+    result = dcmff.loadFile((*it).c_str());
+    if (result.bad())
+    {
+      DCMFG_ERROR("Could not load file " << (*it) << ": " << result.text());
+      return result;
+    }
+    dataset = dcmff.getDataset();
+    datasets.push_back(dataset);
+    it++;
+  }
+  return addSourceImageItems(datasets, purposeOfReference, resultSourceImageItems, skipErrors);
+}
+
+
+OFCondition DerivationImageItem::addSourceImageItems(const OFVector<DcmDataset*>& datasets,
+                                                     const CodeSequenceMacro& purposeOfReference,
+                                                     OFVector<SourceImageItem*>& resultSourceImageItems,
+                                                     const OFBool skipErrors)
+  {
+  OFCondition result;
+  OFVector<DcmDataset*>::const_iterator it = datasets.begin();
+  while (it != datasets.end())
   {
     SourceImageItem* resultItem = NULL;
     result = addSourceImageItem((*it), purposeOfReference, resultItem);
index 6285a310879e6aea3e5febcc3caffa11f31592ea..c8fcd303f8a7ff6d3631250c003a1fe3f38599ad 100644 (file)
 #include "dcmtk/dcmfg/fgfact.h"
 #include "dcmtk/dcmfg/fgderimg.h"
 #include "dcmtk/dcmfg/fgfracon.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
 #include "dcmtk/dcmfg/fgframevoilut.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
 #include "dcmtk/dcmfg/fgimagedatatype.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
 #include "dcmtk/dcmfg/fgpixmsr.h"
 #include "dcmtk/dcmfg/fgplanor.h"
 #include "dcmtk/dcmfg/fgplanorvol.h"
@@ -62,11 +65,18 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype)
     case DcmFGTypes::EFG_PIXELMEASURES:
       return new FGPixelMeasures();
       break;
+    case DcmFGTypes::EFG_FRAMEANATOMY:
+      return new FGFrameAnatomy();
+      break;
     case DcmFGTypes::EFG_FRAMECONTENT:
       return new FGFrameContent();
       break;
     case DcmFGTypes::EFG_FRAMEVOILUTMETA:      // Frame VOI LUT and Frame VOI LUT with LUT
       return new FGFrameVOILUT();
+      break;
+    case DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE:
+      return new FGParametricMapFrameType;
+      break;
     case DcmFGTypes::EFG_PLANEPOSPATIENT:
       return new FGPlanePosPatient();
       break;
@@ -80,6 +90,9 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype)
     case DcmFGTypes::EFG_DERIVATIONIMAGE:
       return new FGDerivationImage();
       break;
+    case DcmFGTypes::EFG_IDENTITYPIXELVALUETRANSFORMATION:
+      return new FGIdentityPixelValueTransformation();
+      break;
     case DcmFGTypes::EFG_IMAGEDATATYPE:
       return new FGImageDataType();
       break;
@@ -93,7 +106,6 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype)
       return new FGUSImageDescription();
       break;
     case DcmFGTypes::EFG_CARDIACSYNC:
-    case DcmFGTypes::EFG_FRAMEANATOMY:
     case DcmFGTypes::EFG_PIXELVALUETRANSMETA:  // Pixel Value Transformation Macro or Identity Pixel Value Transformation Macro
     case DcmFGTypes::EFG_CONTRASTBOLUSUSAGE:
     case DcmFGTypes::EFG_PIXELINTENSITYRELLUT:
index 0d3073171dd7fdb4574730c3ff754600d7377b1e..e60124f633cddb0c83bc5f1035a45524f19ac49c 100644 (file)
@@ -91,7 +91,7 @@ void FGFrameContent::clearData()
 
 OFCondition FGFrameContent::check() const
 {
-  // TODO
+  // Maybe add checks later
   return EC_Normal;
 }
 
@@ -315,7 +315,7 @@ OFCondition FGFrameContent::setRespiratoryCyclePosition(const OFString& value,
 }
 
 OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value,
-                                                    const unsigned int pos,
+                                                    const unsigned int dim,
                                                     const OFBool checkValue)
 {
   // no other meaningful checks possible in this context
@@ -325,7 +325,7 @@ OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value,
     DCMFG_ERROR("Cannot set dimension index value 0, must be >= 1)");
     return EC_InvalidValue;
   }
-  return m_DimensionIndexValues.putUint32(value, pos);
+  return m_DimensionIndexValues.putUint32(value, dim);
 }
 
 OFCondition FGFrameContent::setTemporalPositionIndex(const Uint32& value,
diff --git a/dcmfg/libsrc/fgframeanatomy.cc b/dcmfg/libsrc/fgframeanatomy.cc
new file mode 100644 (file)
index 0000000..405d2a1
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+ *
+ *  Copyright (C) 2015-2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class for managing Frame Anatomy Functional Group
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+
+FGFrameAnatomy::FGFrameAnatomy()
+: FGBase(DcmFGTypes::EFG_FRAMEANATOMY),
+  m_FrameLaterality(LATERALITY_UNDEFINED),
+  m_Anatomy("1" /* Use Mandatory version of macro, i.e. make "Anatomic Region Sequence type 1" */)
+{
+}
+
+
+FGFrameAnatomy::~FGFrameAnatomy()
+{
+  // nothing to do
+}
+
+
+FGBase* FGFrameAnatomy::clone() const
+{
+  FGFrameAnatomy* copy = new FGFrameAnatomy();
+  if (copy)
+  {
+    copy->m_FrameLaterality= this->m_FrameLaterality;
+    copy->m_Anatomy = this->m_Anatomy;
+  }
+  return copy;
+}
+
+
+void FGFrameAnatomy::clearData()
+{
+  m_FrameLaterality = LATERALITY_UNDEFINED;
+  m_Anatomy.clearData();
+}
+
+
+OFCondition FGFrameAnatomy::check() const
+{
+  if (!isLateralityValid(m_FrameLaterality))
+  {
+    DCMFG_ERROR("Frame Laterality invalid");
+    return FG_EC_InvalidData;
+  }
+  return OFconst_cast(GeneralAnatomyMacro*, &m_Anatomy)->check();
+}
+
+
+int FGFrameAnatomy::compare(const FGBase& rhs) const
+{
+  int result = FGBase::compare(rhs);
+  if (result != 0)
+    return result;
+
+  const FGFrameAnatomy* myRhs = OFstatic_cast(const FGFrameAnatomy*, &rhs);
+
+  // Compare all elements
+  if (m_FrameLaterality != myRhs->m_FrameLaterality)
+    return 1;
+
+  return m_Anatomy.compare(myRhs->m_Anatomy);
+}
+
+
+/// Read from Frame Content Sequence
+OFCondition FGFrameAnatomy::read(DcmItem& item)
+{
+  clearData();
+
+  OFCondition result;
+  DcmItem* seqItem = NULL;
+  result = getItemFromFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem);
+  if (result.bad())
+    return result;
+
+  DcmCodeString elem(DCM_FrameLaterality);
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, elem,   "1", "1", "FrameAnatomyMacro");
+  OFString val;
+  elem.getOFStringArray(val);
+  m_FrameLaterality = str2Laterality(val);
+
+  m_Anatomy.read(*seqItem);
+
+  return EC_Normal;
+}
+
+
+OFCondition FGFrameAnatomy::write(DcmItem& item)
+{
+  OFCondition result = check();
+  if (result.good())
+  {
+    DcmItem* seqItem = NULL;
+    OFCondition result = createNewFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem);
+    if (result.good())
+    {
+      OFString lat = laterality2Str(m_FrameLaterality);
+      result = seqItem->putAndInsertOFStringArray(DCM_FrameLaterality, lat);
+      if (result.good())
+      {
+        result = m_Anatomy.write(*seqItem);
+      }
+    }
+  }
+
+  return result;
+}
+
+
+OFCondition FGFrameAnatomy::getLaterality(FGFrameAnatomy::LATERALITY& value)
+{
+  value = m_FrameLaterality;
+  return EC_Normal;
+}
+
+
+GeneralAnatomyMacro& FGFrameAnatomy::getAnatomy()
+{
+  return m_Anatomy;
+}
+
+
+OFCondition FGFrameAnatomy::setLaterality(const FGFrameAnatomy::LATERALITY& value)
+{
+  if (isLateralityValid(value))
+  {
+    m_FrameLaterality = value;
+    return EC_Normal;
+  }
+  else
+  {
+    return FG_EC_InvalidData;
+  }
+}
+
+
+OFString FGFrameAnatomy::laterality2Str(const FGFrameAnatomy::LATERALITY lat)
+{
+  switch(lat)
+  {
+    case LATERALITY_INVALID: return "Invalid";
+    case LATERALITY_L: return "L";
+    case LATERALITY_R: return "R";
+    case LATERALITY_BOTH: return "B";
+    case LATERALITY_UNDEFINED: return "Undefined";
+    case LATERALITY_UNPAIRED: return "U";
+    default: return "Invalid";
+  }
+}
+
+
+FGFrameAnatomy::LATERALITY FGFrameAnatomy::str2Laterality(const OFString& lat)
+{
+  if (lat == "L")
+    return LATERALITY_L;
+  if (lat == "R")
+    return LATERALITY_R;
+  if (lat == "U")
+    return LATERALITY_UNPAIRED;
+  if (lat == "B")
+    return LATERALITY_BOTH;
+
+  if (lat.empty())
+    return LATERALITY_UNDEFINED;
+
+  return LATERALITY_INVALID;
+
+}
+
+
+OFBool FGFrameAnatomy::isLateralityValid(const FGFrameAnatomy::LATERALITY lat)
+{
+  if ( (lat == LATERALITY_L) || (lat == LATERALITY_R) || (lat == LATERALITY_BOTH) ||
+       (lat == LATERALITY_UNPAIRED) )
+    return OFTrue;
+  else
+    return OFFalse;
+}
+
index 3b220122739019dc380bc95aa2b384a50a2fc9d1..2b04ac09c3f349f029d19c30889feba2f4115094 100644 (file)
@@ -67,7 +67,7 @@ void FGFrameVOILUT::clearData()
 
 OFCondition FGFrameVOILUT::check() const
 {
-  // TODO
+  // For now attribute-based checks in read() and write() are sufficient
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgidentpixeltransform.cc b/dcmfg/libsrc/fgidentpixeltransform.cc
new file mode 100644 (file)
index 0000000..ef5f6d4
--- /dev/null
@@ -0,0 +1,229 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Identity Pixel Value Transformation
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
+
+FGIdentityPixelValueTransformation::FGIdentityPixelValueTransformation()
+: FGBase(DcmFGTypes::EFG_UNDEFINED)
+, m_RescaleIntercept(DCM_RescaleIntercept)
+, m_RescaleSlope(DCM_RescaleSlope)
+, m_RescaleType(DCM_RescaleType)
+{
+  m_RescaleIntercept.putOFStringArray("0");
+  m_RescaleSlope.putOFStringArray("1");
+  m_RescaleType.putOFStringArray("US");
+}
+
+
+FGIdentityPixelValueTransformation::~FGIdentityPixelValueTransformation()
+{
+
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::check() const
+{
+  Float64 rs, ri;
+  rs = ri = 0;
+  OFString rt;
+  OFBool ok = OFTrue;
+  if (OFconst_cast(DcmDecimalString*, &m_RescaleIntercept)->getFloat64(ri).good())
+  {
+    if (ri != 0)
+    {
+      DCMFG_ERROR("Rescale Intercept in Identity Pixel Value Transformation FG must be 0 but is set to " << ri);
+      ok = OFFalse;
+    }
+  }
+  else
+  {
+    DCMFG_ERROR("Invalid or no value for Rescale Intercept in Identity Pixel Value Transformation FG (0 is the only valid value");
+    ok = OFFalse;
+  }
+
+  if (OFconst_cast(DcmDecimalString*, &m_RescaleSlope)->getFloat64(rs).good())
+  {
+    if (rs != 1)
+    {
+      DCMFG_ERROR("Rescale Slope in Identity Pixel Value Transformation FG must be 1 but is set to " << rs);
+      ok = OFFalse;
+    }
+  }
+  else
+  {
+    DCMFG_ERROR("Invalid or no value for Rescale Slope in Identity Pixel Value Transformation FG (1 is the only valid value");
+    ok = OFFalse;
+  }
+
+  if (OFconst_cast(DcmLongString*, &m_RescaleType)->getOFStringArray(rt).good())
+  {
+    if (rt != "US")
+    {
+      DCMFG_ERROR("Rescale Type in Identity Pixel Value Transformation FG must be \"US\" but is set to " << rt);
+      ok = OFFalse;
+    }
+  }
+  else
+  {
+    DCMFG_ERROR("Invalid or no value for Rescale Type in Identity Pixel Value Transformation FG (\"US\" is the only valid value");
+    ok = OFFalse;
+  }
+  if (ok)
+  {
+    return EC_Normal;
+  }
+  else
+  {
+    return FG_EC_InvalidData;
+  }
+}
+
+
+void FGIdentityPixelValueTransformation::clearData()
+{
+  m_RescaleIntercept.clear();
+  m_RescaleSlope.clear();
+  m_RescaleType.clear();
+}
+
+
+FGBase* FGIdentityPixelValueTransformation::clone() const
+{
+  if(FGIdentityPixelValueTransformation* copy = new FGIdentityPixelValueTransformation)
+  {
+    copy->m_RescaleIntercept = m_RescaleIntercept;
+    copy->m_RescaleSlope = m_RescaleSlope;
+    copy->m_RescaleType = m_RescaleType;
+    return copy;
+  }
+  return OFnullptr;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::read(DcmItem& item)
+{
+  clearData();
+
+  DcmItem* seqItem;
+  OFCondition result;
+
+  seqItem = OFnullptr;
+  result = getItemFromFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem);
+  if(result.bad())
+    return result;
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation");
+
+  return EC_Normal;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::write(DcmItem& item)
+{
+  DcmItem* seqItem;
+  DCMFG_DEBUG("Identity Pixel Value Transformation Macro: Fixing values for Rescale Slope, Intercept and Type to enumerated values '1', '0' and 'US'");
+  m_RescaleSlope.putOFStringArray("1");
+  m_RescaleIntercept.putOFStringArray("0");
+  m_RescaleType.putOFStringArray("US");
+
+  seqItem = OFnullptr;
+  OFCondition result = createNewFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem);
+  if(result.bad())
+    return result;
+  DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation");
+
+  return result;
+}
+
+
+int FGIdentityPixelValueTransformation::compare(const FGBase& rhs) const
+{
+  int result = FGBase::compare(rhs);
+  if(result == 0)
+  {
+    const FGIdentityPixelValueTransformation* myRhs = OFstatic_cast(const FGIdentityPixelValueTransformation*, &rhs);
+
+    // Compare all elements
+    result = m_RescaleIntercept.compare(myRhs->m_RescaleIntercept);
+    result = m_RescaleSlope.compare(myRhs->m_RescaleSlope);
+    result = m_RescaleType.compare(myRhs->m_RescaleType);
+  }
+
+  return result;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::getRescaleIntercept(OFString &value,
+                                                                    const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_RescaleIntercept, value, pos);
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::getRescaleSlope(OFString &value,
+                                                                const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_RescaleSlope, value, pos);
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::getRescaleType(OFString &value,
+                                                               const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_RescaleType, value, pos);
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::setRescaleIntercept(const OFString &value,
+                                                                    const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_RescaleIntercept.putString(value.c_str());
+  return result;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::setRescaleSlope(const OFString &value,
+                                                                const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_RescaleSlope.putString(value.c_str());
+  return result;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::setRescaleType(const OFString &value,
+                                                               const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_RescaleType.putString(value.c_str());
+  return result;
+}
+
index dc71962a5b9aa2da9ff25be76dda4a5873c84c00..af6ea1420172185307d0981c310b6816292b3c54 100644 (file)
@@ -74,7 +74,7 @@ void FGImageDataType::clearData()
 
 OFCondition FGImageDataType::check() const
 {
-  // TODO
+   // For now, checks in read() and write() are sufficient
   return EC_Normal;
 }
 
@@ -228,6 +228,19 @@ OFCondition FGImageDataType::write(DcmItem& item)
   {
     DcmIODUtil::copyElementToDataset(result, *seqItem, m_ZeroVelocityPixelValueUS, "1", "1C", "ImageDataTypeMacro");
   }
+  // Zero Velocity Pixel Value is required in case Data Type is TISSUE_VELOCITY,
+  // FLOW_VELOCITY or DIRECTION_POWER.
+  else
+  {
+    OFString val;
+    m_DataType.getOFStringArray(val);
+    if ( (val == "TISSUE_VELOCITY") || (val == "FLOW_VELOCITY") ||  (val == "DIRECTION_POWER") )
+    {
+      DCMFG_ERROR("Missing value for Zero Velocity Pixel Value (required if Data Type has" <<
+                  "the value TISSUE_VELOCITY, FLOW_VELOCITY or DIRECTION_POWER");
+      return FG_EC_InvalidData;
+    }
+  }
 
   return result;
 }
index 084471142b6130e64b37ca72cad0e0cc324743eb..c7c080230474869b398fbd2d3d45589439f4b9d1 100644 (file)
@@ -250,11 +250,11 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset)
   }
 
   /* Read functional groups for each item (one per frame) */
-  for (size_t count = 0; count < numFrames; count++)
+  DcmItem *oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(NULL));
+  Uint32 count = 0;
+  while (oneFrameItem != NULL)
   {
-    DcmItem* oneFrameItem = perFrame->getItem(count);
     OFauto_ptr<FunctionalGroups> perFrameGroups(new FunctionalGroups());
-    // FunctionalGroups* perFrameGroups = new FunctionalGroups();
     if (!oneFrameItem)
     {
       DCMFG_ERROR("Could not get functional group item for frame #" << count << " (internal error)");
@@ -278,6 +278,8 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset)
         DCMFG_ERROR("Could not read functional groups for frame #" << count << ": " << result.text());
       }
     }
+    oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(oneFrameItem));
+    count++;
   }
   return EC_Normal; // for now we always return EC_Normal...
 }
@@ -353,7 +355,6 @@ OFCondition FGInterface::write(DcmItem& dataset)
 }
 
 
-// TODO: overload (templates?) to return correct derived class type?
 FGBase* FGInterface::getShared(const DcmFGTypes::E_FGType fgType)
 {
   return m_shared.find(fgType);
@@ -432,6 +433,25 @@ size_t FGInterface::deletePerFrame(const DcmFGTypes::E_FGType fgType)
 }
 
 
+size_t FGInterface::deleteFrame(const Uint32 frameNo)
+{
+  OFMap<Uint32, FunctionalGroups*>::iterator it = m_perFrame.find(frameNo);
+  if (it != m_perFrame.end())
+  {
+    if ( (*it).second )
+    {
+      FunctionalGroups::iterator fg = (*it).second->begin();
+      while (fg != (*it).second->end())
+      {
+        delete (*fg).second;
+        fg++;
+      }
+    }
+    m_perFrame.erase(it);
+  }
+  return OFFalse;
+}
+
 
 FunctionalGroups* FGInterface::getOrCreatePerFrameGroups(const Uint32 frameNo)
 {
@@ -512,7 +532,8 @@ OFCondition FGInterface::writeSharedFG(DcmItem& dataset)
   }
 
   FunctionalGroups::iterator it = m_shared.begin();
-  while ( (it != m_shared.end()) && result.good() )
+  FunctionalGroups::iterator end = m_shared.end();
+  while ( (it != end) && result.good() )
   {
     DCMFG_DEBUG("Writing shared group: " << DcmFGTypes::FGType2OFString((*it).second->getType()));
     result = (*it).second->write(*sharedFGItem);
@@ -623,10 +644,12 @@ OFBool FGInterface::check()
     // Every frame requires the FrameContent functional group, check "en passant"
     OFBool foundFrameContent = OFFalse;
     OFMap<Uint32, FunctionalGroups*>::iterator frameFG = m_perFrame.begin();
-    while (frameFG != m_perFrame.end())
+    OFMap<Uint32, FunctionalGroups*>::iterator end = m_perFrame.end();
+    while (frameFG != end)
     {
       FunctionalGroups::iterator group = (*frameFG).second->begin();
-      while (group !=  (*frameFG).second->end())
+      FunctionalGroups::iterator groupEnd = (*frameFG).second->end();
+      while (group != groupEnd)
       {
         // Check that per-frame group is not shared group at the same time
         DcmFGTypes::E_FGType groupType = group->second->getType();
@@ -660,7 +683,8 @@ OFBool FGInterface::check()
 
   // Check whether shared groups contain FGs that are only permitted per-frame
   FunctionalGroups::iterator it = m_shared.begin();
-  while (it != m_shared.begin())
+  FunctionalGroups::iterator end = m_shared.end();
+  while (it != end)
   {
     if ( (*it).second->getSharedType() == DcmFGTypes::EFGS_ONLYPERFRAME )
     {
diff --git a/dcmfg/libsrc/fgparametricmapframetype.cc b/dcmfg/libsrc/fgparametricmapframetype.cc
new file mode 100644 (file)
index 0000000..b60a57e
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmfg
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Frame Type
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
+
+FGParametricMapFrameType::FGParametricMapFrameType()
+: FGBase(DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE)
+, m_FrameType(DCM_FrameType)
+{
+
+}
+
+FGParametricMapFrameType::~FGParametricMapFrameType()
+{
+
+}
+
+void FGParametricMapFrameType::clearData()
+{
+  m_FrameType.clear();
+}
+
+FGBase* FGParametricMapFrameType::clone() const
+{
+  if(FGParametricMapFrameType* copy = new FGParametricMapFrameType)
+  {
+    copy->m_FrameType = m_FrameType;
+    return copy;
+  }
+  return OFnullptr;
+}
+
+OFCondition FGParametricMapFrameType::read(DcmItem& item)
+{
+  clearData();
+
+  DcmItem* seqItem;
+  OFCondition result;
+
+  seqItem = OFnullptr;
+  result = getItemFromFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem);
+  if(result.bad())
+    return result;
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type");
+
+  return EC_Normal;
+}
+
+
+OFCondition FGParametricMapFrameType::write(DcmItem& item)
+{
+  OFCondition result = check();
+  if (result.good())
+  {
+    DcmItem* seqItem;
+    seqItem = OFnullptr;
+    result = createNewFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem);
+    if(result.good())
+    {
+      DcmIODUtil::copyElementToDataset(result, *seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type");
+    }
+  }
+  return result;
+}
+
+
+int FGParametricMapFrameType::compare(const FGBase& rhs) const
+{
+  int result = FGBase::compare(rhs);
+  if(result == 0)
+  {
+    const FGParametricMapFrameType* myRhs = OFstatic_cast(const FGParametricMapFrameType*, &rhs);
+
+    // Compare all elements
+    result = m_FrameType.compare(myRhs->m_FrameType);
+  }
+
+  return result;
+}
+
+
+OFCondition FGParametricMapFrameType::check() const
+{
+  DcmCodeString myFrameType = m_FrameType;
+  OFCondition result = myFrameType.checkValue("4");
+  if (result.good())
+  {
+    OFString val;
+    myFrameType.getOFString(val, 0);
+    if (val == "DERIVED")
+    {
+      val.clear();
+      myFrameType.getOFString(val, 1);
+      if (val == "PRIMARY")
+      {
+        val.clear();
+        myFrameType.getOFString(val, 1);
+        return EC_Normal;
+      }
+      else
+        DCMFG_ERROR("Frame Type' 2nd value must be \"PRIMARY\" but is \"" << val << "\"");
+    }
+    else
+      DCMFG_ERROR("Frame Type 1st value must be \"DERIVED\" but is \"" << val << "\"");
+  }
+  return FG_EC_InvalidData;
+}
+
+
+OFCondition FGParametricMapFrameType::getFrameType(OFString &value,
+                                                   const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_FrameType, value, pos);
+}
+
+
+OFCondition FGParametricMapFrameType::setFrameType(const OFString &value,
+                                                   const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "4") : EC_Normal;
+  if (result.good())
+    result = m_FrameType.putString(value.c_str());
+  return result;
+}
index 9fa1eec9b3d52413f1cbac02cca47e4ef11209ce..24bb4ddf722beb52cf8366c8b010c3923d93063e 100644 (file)
@@ -64,7 +64,7 @@ void FGPixelMeasures::clearData()
 
 OFCondition FGPixelMeasures::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index b46599d5c8ccf6c988d45bccef695933c340d74d..49265b572461d723e0c51ae49c9fc59dae7419f5 100644 (file)
@@ -42,7 +42,7 @@ void FGPlaneOrientationPatient::clearData()
 
 OFCondition FGPlaneOrientationPatient::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index d5c038f0a6562bce5ea45a3b0283742dff877564..eccea15b760abd04e44012824385948e9f08be2f 100644 (file)
@@ -60,7 +60,7 @@ void FGPlaneOrientationVolume::clearData()
 
 OFCondition FGPlaneOrientationVolume::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index 6fce31fba19543704b68cd9a41214aed2adfd3a9..44fe2080b691b0f0ab9817ceb69b9321acf66140 100644 (file)
@@ -71,7 +71,7 @@ void FGPlanePosPatient::clearData()
 
 OFCondition FGPlanePosPatient::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index 00eaf4647025154189f56cbc9f0610a6af62613e..4a88836a27d07a4c71f384302163291ebd4250d1 100644 (file)
@@ -58,7 +58,7 @@ void FGPlanePositionVolume::clearData()
 
 OFCondition FGPlanePositionVolume::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index a2e595aa360e0f2610801a673cb3aad6517864ad..08ba72eb5faeab881808d4687c759cb5ce945f34 100644 (file)
@@ -64,7 +64,7 @@ void FGRealWorldValueMapping::clearData()
 
 OFCondition FGRealWorldValueMapping::check() const
 {
-  // TODO
+  // More checks checks for 1C conditions could be added
   return EC_Normal;
 }
 
@@ -122,7 +122,8 @@ OFVector< FGRealWorldValueMapping::RWVMItem* >& FGRealWorldValueMapping::getReal
 
 FGRealWorldValueMapping::RWVMItem::RWVMItem(IODComponent* parent)
 : IODComponent(parent),
-  m_MeasurementUnitsCode()
+  m_MeasurementUnitsCode(),
+  m_QuantityDefinitionSequence()
 {
   resetRules();
 }
@@ -132,33 +133,43 @@ FGRealWorldValueMapping::RWVMItem::RWVMItem(OFshared_ptr< DcmItem > item,
                                             OFshared_ptr< IODRules > rules,
                                             IODComponent* parent)
 : IODComponent(item, rules, parent),
-  m_MeasurementUnitsCode()
+  m_MeasurementUnitsCode(),
+  m_QuantityDefinitionSequence()
 {
   resetRules();
 }
 
 
-FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone()
+FGRealWorldValueMapping::RWVMItem::RWVMItem(const FGRealWorldValueMapping::RWVMItem& rhs)
+: IODComponent(rhs)
 {
-  FGRealWorldValueMapping::RWVMItem* mapping = new FGRealWorldValueMapping::RWVMItem(*this);
-  if (mapping)
+  m_MeasurementUnitsCode = rhs.m_MeasurementUnitsCode;
+  OFVector<ContentItemMacro*>::const_iterator it = rhs.m_QuantityDefinitionSequence.begin();
+  while (it != rhs.m_QuantityDefinitionSequence.end())
   {
-    // We do not have a copy constructor or clone function on IODComponent
-    OFString code, meaning, scheme, version;
-    m_MeasurementUnitsCode.getCodeValue(code);
-    m_MeasurementUnitsCode.getCodeMeaning(meaning);
-    m_MeasurementUnitsCode.getCodingSchemeDesignator(scheme);
-    m_MeasurementUnitsCode.getCodingSchemeVersion(version);
-    mapping->m_MeasurementUnitsCode.set(code, scheme, meaning, version, OFFalse /* do not check */);
+    ContentItemMacro* macro = new ContentItemMacro(**it);
+    if (macro == NULL)
+    {
+      DCMFG_ERROR("Out of memory in copy constructor of FGRealWorldValueMapping::RWVMItem::RWVMItem");
+      return;
+    }
+    m_QuantityDefinitionSequence.push_back(macro);
+    it++;
   }
-  return mapping;
+}
+
+
+
+FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone()
+{
+  return new FGRealWorldValueMapping::RWVMItem(*this);
 }
 
 
 
 FGRealWorldValueMapping::RWVMItem::~RWVMItem()
 {
-  // nothing to do
+  DcmIODUtil::freeContainer(m_QuantityDefinitionSequence);
 }
 
 
@@ -173,24 +184,29 @@ int FGRealWorldValueMapping::RWVMItem::compare(const IODComponent& rhs) const
   return IODComponent::compare(rhs);
 }
 
+
 void FGRealWorldValueMapping::RWVMItem::resetRules()
 {
   // parameters are tag, VM, type. Overwrite old rules if any.
-  m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1",getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_RealWorldValueIntercept, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_RealWorldValueSlope, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_RealWorldValueLUTData, "1-n","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_LUTExplanation, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_LUTLabel, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
-  //m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1-n","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
 }
 
+
 OFCondition FGRealWorldValueMapping::RWVMItem::read(DcmItem& source,
                                                     const OFBool clearOldData)
 {
   DcmIODUtil::readSingleItem(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, "1", m_ModuleName);
+  DcmIODUtil::readSubSequence(source, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, m_Rules->getByTag(DCM_QuantityDefinitionSequence));
   return IODComponent::read(source, clearOldData);
 }
 
@@ -199,6 +215,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::write(DcmItem& destination)
 {
   OFCondition result;
   DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, *m_Item, "1", m_ModuleName);
+  DcmIODUtil::writeSubSequence(result, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, *m_Item, m_Rules->getByTag(DCM_QuantityDefinitionSequence));
   if (result.good()) result = IODComponent::write(destination);
   return result;
 }
@@ -212,12 +229,26 @@ OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueFirstValueMapped
 
 
 OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLastValueMapped(Sint32& value,
-                                                                                 const unsigned long pos) const
+                                                                                const unsigned long pos) const
 {
   return getUSorSS(*m_Item, DCM_RealWorldValueLastValueMapped, pos, value);
 }
 
 
+OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueFirstValueMapped(Float64& value,
+                                                                                            const unsigned long pos) const
+{
+  return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos);
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueLastValueMapped(Float64& value,
+                                                                                           const unsigned long pos) const
+{
+  return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos);
+}
+
+
 OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLUTData(OFVector< Float64 >& values) const
 {
   DcmElement* elem = NULL;
@@ -263,7 +294,13 @@ CodeSequenceMacro& FGRealWorldValueMapping::RWVMItem::getMeasurementUnitsCode()
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16& value,
+OFVector<ContentItemMacro*> & FGRealWorldValueMapping::RWVMItem::getEntireQuantityDefinitionSequence()
+{
+  return m_QuantityDefinitionSequence;
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16 value,
                                                                                          const OFBool checkValue)
 {
   (void)checkValue;
@@ -299,7 +336,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedS
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16& value,
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16 value,
                                                                                         const OFBool checkValue)
 {
   (void)checkValue;
@@ -311,7 +348,23 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedU
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64& value,
+OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value,
+                                                                                            const OFBool checkValue)
+{
+  (void)checkValue;
+  return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value);
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value,
+                                                                                           const OFBool checkValue)
+{
+  (void)checkValue;
+  return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueLastValueMapped, value);
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64 value,
                                                                           const OFBool checkValue)
 {
   (void)checkValue;
@@ -319,7 +372,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64& value,
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64 value,
                                                                       const OFBool checkValue)
 {
   (void)checkValue;
index 4e28d64bd903a10ea04fb33acccfb320a8fae85c..72cfa404f29677d2d651c47eb86ab4edff52ca10 100644 (file)
@@ -57,7 +57,7 @@ void FGSegmentation::clearData()
 
 OFCondition FGSegmentation::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index eecd622a02678129a0ff3068a6cc13b1ac485d2a..fc5ca7c9b45218472987b76e0646ba384c8b6ee6 100644 (file)
@@ -93,6 +93,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType)
     case EFG_IRRADIATIONEVENTIDENT: return "Irradiation Event Identification Functional Group Macro"; break;
     /// Radiopharmaceutical Usage
     case EFG_RADIOPHARAMAUSAGE: return "Radiopharmaceutical Usage Functional Group Macro"; break;
+    /// Parametric Map Frame Type
+    case EFG_PARAMETRICMAPFRAMETYPE: return "Parametric Map Frame Type Functional Group Macro"; break;
     /// Patient Physiological State
     case EFG_PATIENTPHYSIOSTATE: return "Patient Physiological State Functional Group Macro"; break;
     /// Plane Position (Volume)
@@ -101,6 +103,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType)
     case EFG_PLANEORIENTVOLUME: return "Plane Orientation (Volume) Functional Group Macro"; break;
     /// Temporal Position Macro
     case EFG_TEMPORALPOSITION: return "Temporal Position Functional Group Macro"; break;
+    /// Identity Pixel Value Transformation
+    case EFG_IDENTITYPIXELVALUETRANSFORMATION: return "Identity Pixel Value Transformation"; break;
     /// Image Data Type
     case EFG_IMAGEDATATYPE: return "Image Data Type Functional Group Macro"; break;
     /// Unassigned Shared Converted Attributes Macro
@@ -116,7 +120,7 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType)
 
 DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key)
 {
-  // TODO: Use neat value to enum trick from Alexandrescu in order to have switch statement instead?
+  // Note: Use neat value to enum trick from Alexandrescu in order to have switch statement instead?
   if (key == DCM_PixelMeasuresSequence)
     return EFG_PIXELMEASURES;
   else if (key == DCM_FrameContentSequence)
@@ -155,12 +159,16 @@ DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key)
     return EFG_RADIOPHARAMAUSAGE;
   else if (key == DCM_PatientPhysiologicalStateSequence)
     return EFG_PATIENTPHYSIOSTATE;
+  else if (key == DCM_ParametricMapFrameTypeSequence)
+    return EFG_PARAMETRICMAPFRAMETYPE;
   else if (key == DCM_PlanePositionVolumeSequence)
     return EFG_PLANEPOSITIONVOLUME;
   else if (key == DCM_PlaneOrientationVolumeSequence)
     return EFG_PLANEORIENTVOLUME;
   else if (key == DCM_TemporalPositionSequence)
     return EFG_TEMPORALPOSITION;
+  else if (key == DCM_PixelValueTransformationSequence)
+    return EFG_IDENTITYPIXELVALUETRANSFORMATION;
   else if (key == DCM_ImageDataTypeSequence)
     return EFG_IMAGEDATATYPE;
   else if (key == DCM_UnassignedSharedConvertedAttributesSequence)
index e5ffa4e61c8b7619579ae14a1a03e263b1cb4bc2..439e33957e87a41a320a7a771c40a3f70f9517d0 100644 (file)
@@ -64,7 +64,7 @@ void FGUSImageDescription::clearData()
 
 OFCondition FGUSImageDescription::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
index ba3e71e59ab5faacc426fd06b33e063a3ee9fdcc..cf4a6116a898934e23a50253d41299b843ac979a 100644 (file)
@@ -348,7 +348,7 @@ class DiMonoOutputPixelTemplate
                         if (dlut != NULL)                                               // perform display transformation
                         {
                             DCMIMGLE_TRACE("monochrome rendering: VOI LUT #1 - UNTESTED");
-                            if (low > high)                                             // invers
+                            if (low > high)                                             // inverse
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getAbsMaxRange() - plut->getValue(value2) - 1)));
                             else                                                        // normal
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getValue(value2))));
@@ -361,7 +361,7 @@ class DiMonoOutputPixelTemplate
                         if (dlut != NULL)                                               // perform display transformation
                         {
                             DCMIMGLE_TRACE("monochrome rendering: VOI LUT #3 - UNTESTED");
-                            if (low > high)                                             // invers
+                            if (low > high)                                             // inverse
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, vlut->getAbsMaxRange() - minvalue - 1)));
                             else                                                        // normal
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, minvalue)));
index bfb8e1febeecc115f11945385bce171ad1112689..0db68be56d62836e6103746cc87e48e0ecdec79f 100644 (file)
@@ -1901,7 +1901,7 @@ DiImage *DiMonoImage::createOutputImage(const unsigned long frame,
     if ((OutputData != NULL) && (OutputData->getData() != NULL))
     {
 
-        DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OutputData->getItemSize() * 8);
+        DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OFstatic_cast(int, OutputData->getItemSize() * 8));
         if (image != NULL)
             OutputData->removeDataReference();              // output data is now handled by new mono image
         return image;
index d4cd8721078d7a057d66bd19f1a68474a35da373..19d5f379b55f734fd0d8207f4f712f0ae14d5431 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -48,6 +48,11 @@ public:
    */
   DcmIODCommon();
 
+  /** Copy Constructor
+   *  @param  rhs The object to copy from
+   */
+  DcmIODCommon(const DcmIODCommon& rhs);
+
   /** Get rules handled by this IOD
    *  @return The rules
    */
@@ -177,6 +182,46 @@ public:
                              OFBool readFoR = OFFalse,
                              OFBool readSeries = OFFalse);
 
+  /** Import common module attributes from DICOM file but only read Patient, Study,
+   *  Series and/or Frame of Reference level portions. The current content
+   *  is not deleted before reading. If the log stream is set and valid the
+   *  reason for any error might be obtained from the error/warning output.
+   *  This function is deprecated and might be removed in later versions of
+   *  DCMTK. Use the import() call offering the same parameters and
+   *  functionality, instead.
+   *  @param  filename The filename to read from.
+   *  @param  usePatient If OFTrue, Patient level information is imported
+   *  @param  useStudy If OFTrue, Study level information is imported
+   *  @param  useSeries If OFTrue, Series level information is imported
+   *  @param  useFoR If OFTrue, Frame of Reference information is imported
+   *  @return EC_Normal if reading was successful (i.e.\ if any information could
+   *          be read), otherwise an error is returned
+   */
+  OFCondition importPatientStudyFoR(const OFString& filename,
+                                    const OFBool usePatient,
+                                    const OFBool useStudy,
+                                    const OFBool useSeries,
+                                    const OFBool useFoR = OFFalse);
+
+  /** Import common module attributes from DICOM file but only read Patient, Study,
+   *  Series and/or Frame of Reference level portions. The current content
+   *  is not deleted before reading. If the log stream is set and valid the
+   *  reason for any error might be obtained from the error/warning output.
+   *  @param  filename The filename to read from
+   *  @param  usePatient If OFTrue, Patient level information is imported
+   *  @param  useStudy If OFTrue, Study level information is imported
+   *  @param  useSeries If OFTrue, Series level information is imported
+   *  @param  useFoR If OFTrue, Frame of Reference information is imported
+   *  @return EC_Normal if reading was successful (i.e.\ if any information could
+   *          be read), otherwise an error is returned
+   */
+  virtual OFCondition import(const OFString& filename,
+                             const OFBool usePatient,
+                             const OFBool useStudy,
+                             const OFBool useSeries,
+                             const OFBool useFoR = OFFalse);
+
+
   /** Write the attributes managed by this class to DICOM dataset.
    *  @param dataset  Reference to DICOM dataset to which the current document
    *                  should be  written. The dataset is not cleared
@@ -188,6 +233,10 @@ public:
 
 private:
 
+  /** Copy assignment disabled
+   */
+  DcmIODCommon& operator=(const DcmIODCommon&);
+
   /// The data hold by this class (shared with modules below)
   OFshared_ptr<DcmItem> m_Item;
 
diff --git a/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
new file mode 100644 (file)
index 0000000..8646e96
--- /dev/null
@@ -0,0 +1,478 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Content Item Macro
+ *
+ */
+
+#ifndef IODCONTENTITEMMACRO_H
+#define IODCONTENTITEMMACRO_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofmem.h"
+#include "dcmtk/dcmiod/iodrules.h"
+#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmiod/iodtypes.h"
+
+/** Class representing the Content Item Macro:
+ *
+ *  ValueType: (CS, 1, 1)
+ *  ConceptNameCodeSequence: (SQ, 1, 1)
+ *  DateTime: (DT, 1, 1C)
+ *  Date: (DA, 1, 1C)
+ *  Time: (TM, 1, 1C)
+ *  PersonName: (PN, 1, 1C)
+ *  UID: (UI, 1, 1C)
+ *  TextValue: (UT, 1, 1C)
+ *  ConceptCodeSequence: (SQ, 1, 1C)
+ *  NumericValue: (DS, 1-n, 1C)
+ *  FloatingPointValue: (FD, 1-n, 1C)
+ *  RationalNumeratorValue: (SL, 1-n, 1C)
+ *  RationalDenominatorValue: (UL, 1-n, 1C)
+ *  MeasurementUnitsCodeSequence: (SQ, 1, 1C)
+ *  ReferencedSOPSequence: (SQ, 1, 1C)
+ */
+class DCMTK_DCMIOD_EXPORT ContentItemMacro : public IODComponent
+{
+public:
+
+  enum ValueType
+  {
+     // Value is empty and not provided
+     VT_EMPTY,
+     // Value is provided but not known to the implementation
+     VT_UNKNOWN,
+     VT_DATE,
+     VT_TIME,
+     VT_DATETIME,
+     VT_PNAME,
+     VT_UIDREF,
+     VT_TEXT,
+     VT_CODE,
+     VT_NUMERIC,
+     VT_COMPOSITE,
+     VT_IMAGE
+   };
+
+  /** Class representing an item within the Content Item Macro's Referenced
+   *  SOP Sequence
+   */
+  class DCMTK_DCMIOD_EXPORT ReferencedSOPSequenceItem : public IODComponent
+  {
+  public:
+
+    /** Constructor
+     *  @param  item The item to be used for data storage. If NULL, the
+     *          class creates an empty data container.
+     *  @param  rules The rule set for this class. If NULL, the class creates
+     *          one from scratch and adds its values.
+     *  @param  parent The parent of the IOD component (NULL if none or unknown)
+     */
+    ReferencedSOPSequenceItem(OFshared_ptr<DcmItem> item,
+                              OFshared_ptr<IODRules> rules,
+                              IODComponent* parent = NULL);
+
+    /** Constructor
+     *  @param  parent The parent of the IOD component (NULL if none or unknown)
+     */
+    ReferencedSOPSequenceItem(IODComponent* parent = NULL);
+
+    /** Copy Constructor, performs deep copy
+     *  @param  rhs The parent of the IOD component (NULL if none or unknown)
+     */
+    ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs);
+
+    /** Virtual Destructor
+     */
+    virtual ~ReferencedSOPSequenceItem();
+
+    /** Read attributes from given item into this class
+     *  @param source  The source to read from
+     *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+     *         old data is overwritten (or amended)
+     *  @result EC_Normal if reading was successful, error otherwise
+     */
+    virtual OFCondition read(DcmItem& source,
+                            const OFBool clearOldData = OFTrue);
+
+    /** Write attributes from this class into given item
+     *  @param  destination The item to write to
+     *  @result EC_Normal if writing was successful, error otherwise
+     */
+    virtual OFCondition write(DcmItem& destination);
+
+    /** Resets rules to their original values
+     */
+    virtual void resetRules();
+
+    /** Get name of macro
+     *  @return Name of the component ("ReferencedSOPSequenceItem")
+     */
+    virtual OFString getName() const;
+
+    /** Get SOPInstanceReferenceMacro
+     *  @return a reference to the included SOPInstanceReferenceMacro
+     */
+    virtual SOPInstanceReferenceMacro& getSOPInstanceReferenceMacro();
+
+    /** Get ReferencedFrameNumber
+     *  @param  value Reference to variable in which the value should be stored
+     *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getReferencedFrameNumber(OFString &value,
+                                                 const signed long pos = 0) const;
+
+    /** Get ReferencedSegmentNumber
+     *  @param  value Reference to variable in which the value should be stored
+     *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getReferencedSegmentNumber(Uint16 &value,
+                                                   const signed long pos = 0) const;
+
+    /** Set ReferencedFrameNumber
+     *  @param  value Value to be set (single value only) or "" for no value
+     *  @param  checkValue Check 'value' for conformance with VR (IS) and VM (1-n) if enabled
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setReferencedFrameNumber(const OFString &value,
+                                                 const OFBool checkValue = OFTrue);
+
+    /** Set ReferencedSegmentNumber
+     *  @param  value Value to be set (single value only) or "" for no value
+     *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1-n) if enabled
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setReferencedSegmentNumber(const Uint16 value,
+                                                   const OFBool checkValue = OFTrue);
+
+  protected:
+
+    /// The name of this item ("ReferencedSOPSequenceItem")
+    static const OFString m_ComponentName;
+
+    /// SOP Instance Reference Macro
+    SOPInstanceReferenceMacro m_SOPInstanceReferenceMacro;
+  };
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  ContentItemMacro(OFshared_ptr<DcmItem> item,
+                   OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  ContentItemMacro();
+
+  /** Destructor
+   */
+  virtual ~ContentItemMacro();
+
+  ContentItemMacro(const ContentItemMacro& rhs);
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module ("ContentItemMacro")
+   *  @return Name of the module ("ContentItemMacro")
+   */
+  virtual OFString getName() const;
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Get ValueType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getValueType(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Get ValueType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getValueType(ValueType &value) const;
+
+  /** Get reference to the ConceptNameCodeSequence
+   *  @return a reference to the ConceptNameCodeSequence
+   */
+  virtual CodeSequenceMacro* getConceptNameCodeSequence();
+
+  /** Get a reference to the entire ConceptNameCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ConceptNameCodeSequence
+   */
+  virtual OFVector<CodeSequenceMacro*>& getEntireConceptNameCodeSequence();
+
+  /** Get DateTime
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDateTime(OFString &value,
+                                  const signed long pos = 0) const;
+
+  /** Get Date
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDate(OFString &value,
+                              const signed long pos = 0) const;
+
+  /** Get Time
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getTime(OFString &value,
+                              const signed long pos = 0) const;
+
+  /** Get PersonName
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getPersonName(OFString &value,
+                                    const signed long pos = 0) const;
+
+  /** Get UID
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getUID(OFString &value,
+                             const signed long pos = 0) const;
+
+  /** Get TextValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getTextValue(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Get reference to the ConceptCodeSequence
+   *  @return a reference to the ConceptCodeSequence
+   */
+  virtual CodeSequenceMacro* getConceptCodeSequence();
+
+  /** Get a reference to the entire ConceptCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ConceptCodeSequence
+   */
+  virtual OFVector<CodeSequenceMacro*>& getEntireConceptCodeSequence();
+
+  /** Get NumericValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getNumericValue(OFString &value,
+                                      const signed long pos = 0) const;
+
+  /** Get FloatingPointValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getFloatingPointValue(Float64 &value,
+                                            const signed long pos = 0) const;
+
+  /** Get RationalNumeratorValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRationalNumeratorValue(Sint32 &value,
+                                                const signed long pos = 0) const;
+
+  /** Get RationalDenominatorValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRationalDenominatorValue(Uint32 &value,
+                                                  const signed long pos = 0) const;
+
+  /** Get reference to the MeasurementUnitsCodeSequence
+   *  @return a reference to the MeasurementUnitsCodeSequence
+   */
+  virtual CodeSequenceMacro* getMeasurementUnitsCodeSequence();
+
+  /** Get a reference to the entire MeasurementUnitsCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire MeasurementUnitsCodeSequence
+   */
+  virtual OFVector<CodeSequenceMacro*>& getEntireMeasurementUnitsCodeSequence();
+
+  /** Get reference to the ReferencedSOPSequence
+   *  @return a reference to the ReferencedSOPSequence
+   */
+  virtual ReferencedSOPSequenceItem* getReferencedSOPSequence();
+
+  /** Get a reference to the entire ReferencedSOPSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ReferencedSOPSequence
+   */
+  virtual OFVector<ReferencedSOPSequenceItem*>& getEntireReferencedSOPSequence();
+
+  /** Set ValueType
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setValueType(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set ValueType
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value'. Does nothing, here for consistency with
+   *          other set() functions.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setValueType(const ValueType value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set DateTime
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DT) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDateTime(const OFString &value,
+                                  const OFBool checkValue = OFTrue);
+
+  /** Set Date
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DA) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDate(const OFString &value,
+                              const OFBool checkValue = OFTrue);
+
+  /** Set Time
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (TM) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setTime(const OFString &value,
+                              const OFBool checkValue = OFTrue);
+
+  /** Set PersonName
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (PN) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPersonName(const OFString &value,
+                                    const OFBool checkValue = OFTrue);
+
+  /** Set UID
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (UI) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setUID(const OFString &value,
+                             const OFBool checkValue = OFTrue);
+
+  /** Set TextValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (UT) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setTextValue(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set NumericValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setNumericValue(const OFString &value,
+                                      const OFBool checkValue = OFTrue);
+
+  /** Set FloatingPointValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  pos Index of the value to be set (starting from 0)
+   *  @param  checkValue Check 'value' for conformance with VR (FD) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFloatingPointValue(const Float64 value,
+                                            const unsigned long pos = 0,
+                                            const OFBool checkValue = OFTrue);
+
+  /** Set RationalNumeratorValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  pos Index of the value to be set (starting from 0)
+   *  @param  checkValue Check 'value' for conformance with VR (SL) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRationalNumeratorValue(const Sint32 value,
+                                                const unsigned long pos = 0,
+                                                const OFBool checkValue = OFTrue);
+
+  /** Set RationalDenominatorValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  pos Index of the value to be set (starting from 0)
+   *  @param  checkValue Check 'value' for conformance with VR (UL) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRationalDenominatorValue(const Uint32 value,
+                                                  const unsigned long pos = 0,
+                                                  const OFBool checkValue = OFTrue);
+
+  virtual OFString toString();
+
+protected:
+
+  /// The name of this module ("ContentItemMacro")
+  static const OFString m_ModuleName;
+
+  /// ConceptNameCodeSequence
+  OFVector<CodeSequenceMacro*> m_ConceptNameCodeSequence;
+
+  /// ConceptCodeSequence
+  OFVector<CodeSequenceMacro*> m_ConceptCodeSequence;
+
+  /// MeasurementUnitsCodeSequence
+  OFVector<CodeSequenceMacro*> m_MeasurementUnitsCodeSequence;
+
+  /// ReferencedSOPSequence
+  OFVector<ReferencedSOPSequenceItem*> m_ReferencedSOPSequence;
+};
+
+#endif // IODCONTENTITEMMACRO_H
index 6b0ac4e7946950bdf5e47ea696d4ea79b2e52e55..7760c4b837745a607df9f0f18fbe7403e6343edd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
 #define IODIMAGE_H
 
 #include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofutil.h"
+#include "dcmtk/ofstd/ofvriant.h"
 #include "dcmtk/dcmiod/iodcommn.h"
 #include "dcmtk/dcmiod/modgeneralimage.h"
-#include "dcmtk/dcmiod/modimagepixel.h"
+#include "dcmtk/dcmiod/modimagepixelvariant.h"
+
+class IODDoubleFloatingPointImagePixelModule;
+class IODFloatingPointImagePixelModule;
+template<typename>
+class IODImagePixelModule;
 
 /** Class for managing common image IOD attributes. At the moment support for
  *  the palette-related attributes and the smallest/largest image pixel value
  *  attributes is still missing. Also, pixel data must be handled separately.
+ *  However, pixel-data related attributes are provided by the Image Pixel
+ *  Module, the Floating Point Image Pixel Module or the Double Floating Point
+ *  Image Pixel Module, based on the provided template parameter.
  *  Modules supported on top of DcmIODCommon: General Image Module and
  *  Image Pixel Module.
  */
-class DCMTK_DCMIOD_EXPORT DcmIODImage :
-  public DcmIODCommon
+#ifdef DCMTK_USE_CXX11_STL
+template<typename T,typename... Types>
+struct DcmIODImageHasType
+: std::false_type {};
+
+template<typename T,typename... Types>
+struct DcmIODImageHasType<T,T,Types...>
+: std::true_type {};
+
+template<typename T,typename T0,typename... Types>
+struct DcmIODImageHasType<T,T0,Types...>
+: DcmIODImageHasType<T,Types...>::type {};
+
+template<typename... Types>
+#else
+template<OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(T)>
+#endif
+class DcmIODImage : public DcmIODCommon
 {
 
 public:
 
-  /** Constructor
+  /** typedef for old compilers that do not define the type 'DcmIODImage' in
+   *  derived classes.
    */
-  DcmIODImage();
+  typedef DcmIODImage IODImage;
 
-  /** Get General Image Module
-   *  @return Reference to General Image Module
+  /** A good comment would be nice, but I have nothing in mind
    */
-  IODGeneralImageModule& getGeneralImage();
+#ifdef DCMTK_USE_CXX11_STL
+  using IODImagePixelModuleType = IODImagePixelVariant<Types...>;
+#else
+  typedef IODImagePixelVariant<OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)> IODImagePixelModuleType;
+#endif
 
-  /** Get Image Pixel Module
-   * @return Reference to Image Pixel Module
+  /** Constructor, creates new DcmIODImage instance with integer-based pixel data.
    */
-  IODImagePixelModule& getImagePixel();
+  DcmIODImage()
+  : DcmIODCommon()
+  , m_GeneralImage(getData(), getRules())
+  , m_ImagePixel()
+  {
+
+  }
+
+  /** Constructor, constructs new DcmIODImage instance with integer, float or
+   *  double based Image Pixel Module (i. e. Image Pixel Module, Floating Point
+   *  Image Pixel Module or the Double Floating Point Image Pixel Module), based
+   *  on the provided Image Pixel module type.
+   */
+  template<typename ImagePixel>
+  DcmIODImage(OFin_place_type_t(ImagePixel))
+  : DcmIODCommon()
+  , m_GeneralImage(getData(), getRules())
+  , m_ImagePixel(ImagePixel(getData(), getRules()))
+  {
+
+  }
 
   /** Virtual Destructor
    */
-  virtual ~DcmIODImage();
+  virtual ~DcmIODImage()
+  {
+
+  }
+
+  /** Get General Image Module
+   *  @return Reference to General Image Module
+   */
+  IODGeneralImageModule& getGeneralImage()
+  {
+    return m_GeneralImage;
+  }
+
+  /** Get Image Pixel Module (variant)
+   *  @return Reference to Image Pixel Module
+   */
+  IODImagePixelModuleType& getImagePixel()
+  {
+    return m_ImagePixel;
+  }
 
   /** Clear (removes) all attributes handled by the modules of this IOD.
    *  IOD Rules are not reset.
    */
-  virtual void clearData();
+  virtual void clearData()
+  {
+    DcmIODCommon::clearData();
+    m_GeneralImage.clearData();
+    m_ImagePixel.clearData();
+  }
 
   /** Read common image module attributes (all those handled by this class)
    *  from given item. Reads attributes from base class DcmIODCommon before.
@@ -71,25 +144,169 @@ public:
    *          should be read
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition read(DcmItem &dataset);
+  virtual OFCondition read(DcmItem &dataset)
+  {
+     // re-initialize object
+     clearData();
+
+     // read from base classes
+     DcmIODCommon::read(dataset);
+     m_GeneralImage.read(dataset, OFTrue /* clear old data */);
+
+     return readFloatingPointDoubleImagePixel<IODDoubleFloatingPointImagePixelModule>(dataset);
+  }
 
   /** Write current common image module's attributes to DICOM dataset. Also
    *  writes attributes of base class DcmIODCommon afterwards.
-   *  @param  dataset Reference to DICOM dataset to which the current document
-   *          should be written.  The dataset is not cleared before writing
+   *  @param  dataset Reference to DICOM dataset to which the current data
+   *          should be written. The dataset is not cleared before writing
    *          to it!
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition write(DcmItem &dataset);
+  virtual OFCondition write(DcmItem &dataset)
+  {
+    OFCondition result = EC_Normal;
+
+    // Write base class attributes to dataset
+    result = DcmIODCommon::write(dataset);
+
+    // Write extra modules to dataset
+    if (result.good())
+      result = m_GeneralImage.write(dataset);
+    if (result.good())
+      result = m_ImagePixel.write(dataset);
+
+    return result;
+  }
 
 private:
 
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointDoubleImagePixel(DcmItem& dataset)
+  {
+    if (dataset.tagExists(DCM_DoubleFloatPixelData))
+      return OFget<T>(&(m_ImagePixel = T(getData(),getRules())))->read(dataset);
+    return readFloatingPointImagePixel<IODFloatingPointImagePixelModule>(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<!DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointDoubleImagePixel(DcmItem& dataset)
+  {
+    return readFloatingPointImagePixel<IODFloatingPointImagePixelModule>(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointImagePixel(DcmItem& dataset)
+  {
+    if (dataset.tagExists(DCM_FloatPixelData))
+      return OFget<T>(&(m_ImagePixel = T(getData(),getRules())))->read(dataset);
+    return readIntegerImagePixel(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<!DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointImagePixel(DcmItem& dataset)
+  {
+    return readIntegerImagePixel(dataset);
+  }
+
+  OFCondition readIntegerImagePixel(DcmItem& dataset)
+  {
+    Uint16 allocated, representation;
+    if
+    (
+      dataset.tagExists(DCM_PixelData) &&
+      dataset.findAndGetUint16(DCM_BitsAllocated, allocated).good() &&
+      dataset.findAndGetUint16(DCM_PixelRepresentation, representation).good()
+    )
+    switch ((allocated > 8 ? 2 : 0) | (representation ? 1 : 0))
+    {
+    case 0:
+      return readImagePixel<Uint8>(dataset);
+    case 1:
+      return readImagePixel<Sint8>(dataset);
+    case 2:
+      return readImagePixel<Uint16>(dataset);
+    case 3:
+      return readImagePixel<Sint16>(dataset);
+    default:
+      break;
+    }
+    return IOD_EC_InvalidPixelData;
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<IODImagePixelModule<T>,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1),
+    OFCondition
+  >::type
+#endif
+  readImagePixel(DcmItem& dataset)
+  {
+    return OFget<IODImagePixelModule<T> >(&(m_ImagePixel = IODImagePixelModule<T>(getData(),getRules())))->read(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<!DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<IODImagePixelModule<T>,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1),
+    OFCondition
+  >::type
+#endif
+  readImagePixel(DcmItem& dataset)
+  {
+    // Avoid compiler warning about unused parameter
+    OFstatic_cast(void, dataset);
+    return IOD_EC_InvalidPixelData;
+  }
+
   /// General Image Module
   IODGeneralImageModule m_GeneralImage;
 
   /// Image Pixel Module
-  IODImagePixelModule   m_ImagePixel;
-
+  IODImagePixelModuleType m_ImagePixel;
 };
 
 #endif // IODIMAGE_H
index 709c23dff1595204f9f7fb29d43a9395a092f2c5..9d4f5d22913c5abe995caefa5ca640124a837a82 100644 (file)
@@ -57,7 +57,6 @@ public:
    */
   CodeSequenceMacro(const CodeSequenceMacro& rhs);
 
-
   /** Convenience constructor to set initial values
    *  @param  item The item to be used for data storage. If NULL, the
    *          class creates an empty data container.
@@ -136,6 +135,14 @@ public:
     */
   virtual OFCondition getCodeMeaning(OFString &value,
                                      const signed long pos = 0);
+
+  /** Returns whether code is empty, i.e. no component of the Code Sequence Macro
+   *  is set. This can be used in order to find out whether someone actually
+   *  wanted to fill in a valid code as opposed of leaving it unset.
+   *  @return OFTrue if no component of this class is set, OFFalse otherwise.
+   */
+  virtual OFBool empty();
+
   /** Set Code Value
    *  @param  value The value to set
    *  @param  checkValue If OFTrue, VM and VR of value are checked
@@ -183,6 +190,8 @@ public:
                           const OFString &schemeVersion = "",
                           const OFBool checkValue = OFTrue);
 
+  virtual OFString toString();
+
 };
 
 
@@ -211,13 +220,13 @@ public:
 
   /** Constructor
    *  @param  modifierType Denotes type of Modifier Code Sequence (i.e. 1, 1C,
-   *          2, 2C or 3), default is 3
+   *          2, 2C or 3)
    *  @param  modifierVM Denotes how many items are allowed in the Modifier Code
    *          Sequence
    *  @param  modifierSeq Tag of the sequence that holds the modifier codes.
    *          The default is the Modifier Code Sequence.
    */
-  CodeWithModifiers(const OFString& modifierType = "3",
+  CodeWithModifiers(const OFString& modifierType,
                     const OFString& modifierVM = "1-n",
                     const DcmTagKey& modifierSeq = DCM_ModifierCodeSequence);
 
@@ -302,6 +311,9 @@ public:
 
 private:
 
+  /// Private undefined default constructor
+  CodeWithModifiers();
+
   /// Items of Modifier Code Sequence
   OFVector<CodeSequenceMacro*> m_Modifiers;
 
@@ -316,6 +328,7 @@ private:
 };
 
 
+
 /** Class implementing the SOP Instance Reference Macro
  */
 class DCMTK_DCMIOD_EXPORT SOPInstanceReferenceMacro : public IODComponent
@@ -555,8 +568,6 @@ private:
 
 
 /** Class representing the Image SOP Instance Reference Macro
- *  TODO: Change implementation to use IODComponent class inherited anyway
- *  from SOPInstanceReferenceMacro
  */
 class DCMTK_DCMIOD_EXPORT ImageSOPInstanceReferenceMacro : public SOPInstanceReferenceMacro
 {
@@ -690,146 +701,9 @@ private:
 };
 
 
-/** Class representing an item within the the Primary Anatomic Structure Macro
- */
-class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacroItem
-{
-
-public:
-
-  /** Constructor
-   */
-  PrimaryAnatomicStructureMacroItem();
-
-  /** Copy constructor
-   *  @param  rhs The item to copy from
-   */
-  PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs);
-
-  /** Virtual destructor
-   */
-  virtual ~PrimaryAnatomicStructureMacroItem();
-
-  /** Clear (removes) all attributes handled by the modules of this component.
-   */
-  virtual void clearData();
-
-  /** Check whether this component's data satisfies the underlying
-   *  rules
-   *  @param  quiet If OFTrue, not error / warning messages will be produced.
-   *          Only the returned error code will indicate error or OK. Per
-   *          default, logging output is produced.
-   *  @result EC_Normal if rules are satisfied, error otherwise
-   */
-  virtual OFCondition check(const OFBool quiet = OFFalse);
-
-  /** Return the Anatomic Structure Code
-   *  @return Reference to the anatomic structure code
-   */
-  virtual CodeSequenceMacro& getAnatomicStructure();
-
-  /** Return the Anatomic Structure Modifier Codes
-   *  @return The Anatomic Structure Modifier Codes
-   */
-  virtual OFVector<CodeSequenceMacro*>& getAnatomicStructureModifier();
-
-  /** Reads Primary Anatomic Region Sequence Item from given item
-   *  @param  source The item to read from
-   *  @param  clearOldData If OFTrue, old data is cleared first, otherwise it is
-   *          kept where not overwritten
-   *  @return EC_Normal if successful, error otherwise
-   */
-  virtual OFCondition read(DcmItem& source,
-                           const OFBool clearOldData = OFTrue);
-
-  /** Write Anatomic Region Sequence Item to given item
-   * @param  item The item to write to
-   * @return EC_Normal if successful, error otherwise
-   */
-  virtual OFCondition write(DcmItem& item);
-
-  /** Assignment operator (performs deep copy)
-   *  @param  rhs The item to copy from
-   *  @return result
-   */
-  PrimaryAnatomicStructureMacroItem& operator=(const PrimaryAnatomicStructureMacroItem &rhs);
-
-private:
-
-  /// Primary Anatomic Structure Sequence Item
-  CodeSequenceMacro m_AnatomicStructure;
-
-  /// Primary Anatomic Structure Structure Modifier Sequence (SQ, 1-n, 3)
-  OFVector<CodeSequenceMacro*> m_AnatomicStructureModifier;
-
-};
-
-
 /** Class representing the Primary Anatomic Structure Macro
  */
-class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacro
-{
-
-public:
-
-  /** Constructor
-   */
-  PrimaryAnatomicStructureMacro();
-
-  /** Copy constructor
-   *  @param  rhs The macro to copy from
-   */
-  PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs);
-
-  /** Virtual destructor
-   */
-  virtual ~PrimaryAnatomicStructureMacro();
-
-  /** Clear (removes) all attributes handled by the modules of this component.
-   */
-  virtual void clearData();
-
-  /** Check whether this component's data satisfies the underlying
-   *  rules
-   *  @param  quiet If OFTrue, not error / warning messages will be produced.
-   *          Only the returned error code will indicate error or OK. Per
-   *          default, logging output is produced.
-   *  @result EC_Normal if rules are satisfied, error otherwise
-   */
-  virtual OFCondition check(const OFBool quiet = OFFalse);
-
-  /** Return Primary Anatomic Structure items
-   *  @return Reference to items of this macro
-   */
-  virtual OFVector<PrimaryAnatomicStructureMacroItem*>& getPrimaryAnatomicStructure();
-
-  /** Reads Primary Anatomic Region Sequence (i.e.\ this macro) from given item
-   *  @param  source The item to read from
-   *  @param  clearOldData If OFTrue, old data is cleared first, otherwise it is
-   *          kept where not overwritten
-   *  @return EC_Normal if reading was fine, error otherwise
-   */
-  virtual OFCondition read(DcmItem& source,
-                           const OFBool clearOldData = OFTrue);
-
-  /** Write Anatomic Region Sequence (i.e.\ this macro) to given item
-   *  @param  item The item to write to
-   *  @return EC_Normal if writing was fine, error otherwise
-   */
-  virtual OFCondition write(DcmItem& item);
-
-  /** Assignment operator
-   *  @param  rhs The macro to copy from
-   *  @result Reference to "this" object
-   */
-  PrimaryAnatomicStructureMacro& operator=(const PrimaryAnatomicStructureMacro &rhs);
-
-private:
-
-  /// Primary Anatomic Structure Sequence (SQ, 0-1, 3)
-  OFVector<PrimaryAnatomicStructureMacroItem*> m_PrimaryAnatomicStructure;
-};
-
+typedef CodeWithModifiers PrimaryAnatomicStructureMacro;
 
 /** Class representing the General Anatomy Mandatory or Optional Macro
  */
@@ -847,7 +721,7 @@ public:
    */
   GeneralAnatomyMacro(const OFString& type);
 
-  /** Copy constructor
+  /** Copy constructor, creates deep copy.
    *  @param  rhs The macro to copy from
    */
   GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs);
@@ -907,10 +781,24 @@ public:
    */
   GeneralAnatomyMacro& operator=(const GeneralAnatomyMacro &rhs);
 
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  objects (this and rhs parameter) are compared by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the rhs object, or all compared components match
+   *          but the rhs component is shorter.
+   *          1 if either the value of the first component that does not match
+   *          is greater in the rhs object, or all compared components match
+   *          but the rhs component is longer.
+   */
+  virtual int compare(const GeneralAnatomyMacro& rhs) const;
+
 private:
 
   /// Type (1,2,3) of Anatomic Region Sequence.
-  OFString m_Type; // TODO: Make enum?
+  OFString m_Type;
 
   /// Anatomic Region Sequence (SQ, 1, 1) (Code Sequence Macro within item of
   /// Anatomic Region Sequence))
@@ -1321,7 +1209,7 @@ private:
 
 /** Class representing the HL7 V2 Hierarchic Designator Macro
  */
-class HL7HierarchicDesignatorMacro : public IODComponent
+class DCMTK_DCMIOD_EXPORT HL7HierarchicDesignatorMacro : public IODComponent
 {
 
 public:
@@ -1405,7 +1293,7 @@ public:
 /** Class representing the Mandatory View and Slice Progression Direction Macro
  */
 
-class MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent
+class DCMTK_DCMIOD_EXPORT MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent
 {
 
 public:
index d4f3c3936cf4f821d2c34a06643fb2d39d9c157f..a51f31790bfa97cfdd13f7b649dabf2e2aea8fca 100644 (file)
@@ -29,6 +29,8 @@
 #include "dcmtk/dcmdata/dcsequen.h"
 #include "dcmtk/dcmdata/dcdatset.h"
 #include "dcmtk/dcmdata/dcdatutl.h"
+#include "dcmtk/ofstd/ofdate.h"
+#include "dcmtk/ofstd/oftime.h"
 #include "dcmtk/dcmiod/ioddef.h"
 #include "dcmtk/dcmiod/iodrules.h"
 #include "dcmtk/dcmiod/iodtypes.h"
@@ -755,12 +757,16 @@ public:
       /* If we do not have data, insert empty for type 2 */
       else if (type == "2")
       {
-          destination.insertEmptyElement(seqKey);
+        destination.insertEmptyElement(seqKey);
       }
       else if (type == "1C")
       {
         DCMIOD_TRACE("Skipping type 1C sequence " << seqKey << ": No data or incomplete data available");
       }
+      else if (type  == "3")
+      {
+        DCMIOD_TRACE("Skipping type 3 sequence " << seqKey << ": No data or incomplete data available");
+      }
       /* Check outcome */
       checkSubSequence(result, destination, seqKey, "1", type, module);
     }
@@ -864,6 +870,26 @@ public:
     }
   }
 
+
+  template <typename ModuleType>
+  static OFCondition setContentDateAndTimeNow(ModuleType& module)
+  {
+    OFDate date;
+    date.setCurrentDate();
+    OFString tempstr;
+    date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */);
+    OFCondition result = module.setContentDate(tempstr);
+    if (result.good())
+    {
+      OFTime time;
+      time.setCurrentTime();
+      time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse);
+      result = module.setContentTime(tempstr);
+    }
+    return result;
+  }
+
+
   /** Function that takes a string representation of a tag key and
    *  converts it to a tag key instance if possible
    *  @param  keyString String of the format "(gggg,eeee)"
index d372a66da41c33f4a55ef56cca1ed64cd2453be4..2270c1776452873a2b6e983d75eea2fd8c80d994 100644 (file)
@@ -66,8 +66,8 @@ public:
   IODComponent(IODComponent* parent = NULL);
 
   /** Assignment operator, copies contained item and rule set from rhs to
-   *  "this" attribute set. Produces clone copy, i.e.\ the contained item
-   *  and the rule set is copied. The parent component is set to NULL.
+   *  "this" attribute set. Performs deep copy, i.e.\ the contained item
+   *  and the rule set are copied. The parent component is set to NULL.
    *  @param  rhs The IODComponent to be assigned
    *  @return Reference to this module
    */
@@ -192,22 +192,28 @@ public:
                            IODRules& rules,
                            DcmItem& destination,
                            const OFString& componentName);
+
 protected:
 
-    /// Shared pointer to the data handled by this class. The item may contain
-    /// more attributes than this class is actually responsible for
-    OFshared_ptr<DcmItem> m_Item;
+  /// Shared pointer to the data handled by this class. The item may contain
+  /// more attributes than this class is actually responsible for
+  OFshared_ptr<DcmItem> m_Item;
+
+  /// Rules describing the attributes governed by this class
+  OFshared_ptr<IODRules> m_Rules;
 
-    /// Rules describing the attributes governed by this class
-    OFshared_ptr<IODRules> m_Rules;
+  /// The parent component (may be NULL) of this class
+  IODComponent* m_Parent;
 
-    /// The parent component (may be NULL) of this class
-    IODComponent* m_Parent;
 };
 
 
 /** The class IODModule is an IODComponent without parent component since
  *  a module does always belong to the top level dataset.
+ *  Also, different from IODComponents, modules usually share data and
+ *  rules. This is taken into account in the assignment operator and
+ *  copy constructor which only create a shallow copy, i.e. modules
+ *  share the same data and rules afterwards.
  */
 class DCMTK_DCMIOD_EXPORT IODModule : public IODComponent
 {
@@ -229,6 +235,19 @@ public:
    */
   IODModule();
 
+  /** Copy constructor, creates shallow copy
+   *  @param  rhs The module to copy from
+   */
+  IODModule(const IODModule& rhs);
+
+  /** Assignment operator, creates shallow copy
+   *  @param  rhs The module to copy from
+   *  @return Returns reference to this object
+   */
+  IODModule& operator=(const IODModule& rhs);
+
+  /** Desctructor
+   */
   ~IODModule() {};
 };
 
index 0991f456f197bd6a771bf4817b610220f01d8e1d..cad4ca7fef0e1f8a3c23221d51063d1ec69b863a 100644 (file)
@@ -122,6 +122,8 @@ protected:
 
 private:
 
+  void freeMemory();
+
   /// Vector with all items of the Referenced Series Sequence
   OFVector<IODSeriesAndInstanceReferenceMacro::ReferencedSeriesItem*> m_ReferenceSeriesItems;
 
index 78b9f5e0c0a5cd5cf48dd7be49054a0fa966fc80..7721d3c1c43db16ed9c0eb6c2ff9980b804b104a 100644 (file)
@@ -40,9 +40,9 @@ class DCMTK_DCMIOD_EXPORT IODEnhGeneralEquipmentModule : public IODModule
 public:
 
     /** Convenient struct containing all information required for setting
-     *  equipment information for use by external code)
+     *  enhanced equipment information (for use by external code)
      */
-    struct EquipmentInfo
+    struct DCMTK_DCMIOD_EXPORT EquipmentInfo
     {
 
       /** Default Constructor
@@ -51,39 +51,52 @@ public:
         m_Manufacturer(),
         m_ManufacturerModelName(),
         m_DeviceSerialNumber(),
-        m_SoftwareVersions() {};
+        m_SoftwareVersions() {}
 
       /** Convenience Constructor setting all values
        *  @param manufacturer Manufacturer
-       *  @param modelName Model name
+       *  @param manufacturerModelName Manufacturer's model name
        *  @param deviceSerialNumber Serial number
-       * *@param softwareVersions Software versions
+       *  @param softwareVersions Software versions
        */
       EquipmentInfo(const OFString& manufacturer,
-                    const OFString& modelName,
+                    const OFString& manufacturerModelName,
                     const OFString& deviceSerialNumber,
                     const OFString& softwareVersions) :
         m_Manufacturer(manufacturer),
-        m_ManufacturerModelName(modelName),
+        m_ManufacturerModelName(manufacturerModelName),
         m_DeviceSerialNumber(deviceSerialNumber),
-        m_SoftwareVersions(softwareVersions) {};
+        m_SoftwareVersions(softwareVersions) {}
 
-      // Manufacturer (VM 1)
+      /** Perform simple check whether all equipment data is filled in. Does not
+       *  check VR or VM (will be checked in write() routine, though)
+       *  @return OFTrue if data is complete, OFFalse otherwise
+       */
+      OFBool isDataComplete() const
+      {
+        if (m_Manufacturer.empty() || m_ManufacturerModelName.empty() || m_DeviceSerialNumber.empty() || m_SoftwareVersions.empty())
+        {
+          return OFFalse;
+        }
+        return OFTrue;
+      }
+
+      /// Manufacturer (VM 1)
       OFString m_Manufacturer;
 
-      // Manufacturer's Model Name (VM 1)
+      /// Manufacturer's Model Name (VM 1)
       OFString m_ManufacturerModelName;
 
-      // Device Serial Number (VM 1)
+      /// Device Serial Number (VM 1)
       OFString m_DeviceSerialNumber;
 
-      // Software Version(s) (VM 1-n)
+      /// Software Version(s) (VM 1-n)
       OFString m_SoftwareVersions;
     };
 
     /** Constructor
-     *  @param  item The item to be used for data storage. If NULL, the
-     *          class creates an empty data container.
+     *  @param  item The item to be used for data storage. If NULL, the class
+     *          creates an empty data container.
      *  @param  rules The rule set for this class. If NULL, the class creates
      *          one from scratch and adds its values.
      */
@@ -101,9 +114,9 @@ public:
     static OFCondition create(const EquipmentInfo& info,
                               IODEnhGeneralEquipmentModule* equipment);
 
-   /** Resets rules to their original values.
-    */
-   virtual void resetRules();
+    /** Resets rules to their original values.
+     */
+    virtual void resetRules();
 
     /** Get name of module
      *  @return Name of the module ("EnhancedEquipmentModule")
@@ -174,6 +187,10 @@ public:
     virtual OFCondition setSoftwareVersions(const OFString &value,
                                             const OFBool checkValue = OFTrue);
 
+    /** Set all equipment information at once
+     *  @param  info The equipment information to be set.
+     *  @return EC_Normal if values could be set, error otherwise
+     */
     virtual OFCondition set(const EquipmentInfo& info);
 
 private:
index 8f6c6949d719a9ed0ccec9728383db2022c9b12c..f974c838ac2b9305ba4de431e1aa91aa1225698a 100644 (file)
@@ -43,30 +43,50 @@ class DCMTK_DCMIOD_EXPORT IODGeneralEquipmentModule : public IODModule
 
 public:
 
-    /** Convenient struct containing all information required for setting
-     *  equipment information for use by external code)
+    /** Convenient struct containing commonly used equipment information
+     *  (for use by external code)
      */
-    struct EquipmentInfo
+    struct DCMTK_DCMIOD_EXPORT EquipmentInfo
     {
-      // Manufacturer (VM 1)
+
+      /** Default Constructor
+       */
+      EquipmentInfo() {}
+
+      /** Convenience Constructor setting commonly used values
+       *  @param manufacturer Manufacturer
+       *  @param manufacturerModelName Manufacturer's model name
+       *  @param deviceSerialNumber Serial number
+       *  @param softwareVersions Software versions
+       */
+      EquipmentInfo(const OFString& manufacturer,
+                    const OFString& manufacturerModelName,
+                    const OFString& deviceSerialNumber,
+                    const OFString& softwareVersions) :
+        m_Manufacturer(manufacturer),
+        m_ManufacturerModelName(manufacturerModelName),
+        m_DeviceSerialNumber(deviceSerialNumber),
+        m_SoftwareVersions(softwareVersions) {}
+
+      /// Manufacturer (VM 1)
       OFString m_Manufacturer;
 
-      // Manufacturer's Model Name (VM 1)
+      /// Manufacturer's Model Name (VM 1)
       OFString m_ManufacturerModelName;
 
-      // Device Serial Number (VM 1)
+      /// Device Serial Number (VM 1)
       OFString m_DeviceSerialNumber;
 
-      // Software Version(s) (VM 1-n)
+      /// Software Version(s) (VM 1-n)
       OFString m_SoftwareVersions;
     };
 
     /** Constructor
-    *  @param  item The item to be used for data storage. If NULL, the
-    *          class creates an empty data container.
-    *  @param  rules The rule set for this class. If NULL, the class creates
-    *          one from scratch and adds its values.
-    */
+     *  @param  item The item to be used for data storage. If NULL, the class
+     *          creates an empty data container.
+     *  @param  rules The rule set for this class. If NULL, the class creates
+     *          one from scratch and adds its values.
+     */
     IODGeneralEquipmentModule(OFshared_ptr<DcmItem> item,
                               OFshared_ptr<IODRules> rules);
 
@@ -84,7 +104,6 @@ public:
 
     /** Get name of module
      *  @return Name of the module ("GeneralEquipmentModule")
-     *          depending on configuration)
      */
     virtual OFString getName() const;
 
@@ -225,7 +244,7 @@ public:
 
 private:
 
-    /// Name of the modue ("GeneralEquipmentModule")
+    /// Name of the module ("GeneralEquipmentModule")
     OFString m_ModuleName;
 };
 
diff --git a/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h
new file mode 100644 (file)
index 0000000..0507228
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Floating Point and Double Floating Point Image Pixel Module
+ *
+ */
+
+#ifndef MODFLOATINGPOINTIMAGEPIXEL_H
+#define MODFLOATINGPOINTIMAGEPIXEL_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+
+/** Class representing Floating Point Image Pixel Module:
+ *
+ *  Samples Per Pixel: (US, 1, 1)
+ *  Photometric Interpretation (CS, 1, 1)
+ *  Rows: (US, 1, 1)
+ *  Columns: (US, 1, 1)
+ *  Bits Allocated: (US, 1 1)
+ *  Pixel Aspect Ratio: (IS,  2, 1C)
+ *  Float Pixel Padding Value: (FL, 1, 3)
+ *  Float Pixel Padding Range Limit: (FL, 1, 1C)
+ */
+class DCMTK_DCMIOD_EXPORT IODFloatingPointImagePixelModule : public IODImagePixelBase
+{
+
+public:
+
+  /// Data type of pixels
+  typedef Float32 value_type;
+
+  static const DcmTagKey pixel_data_tag;
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  IODFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                   OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  IODFloatingPointImagePixelModule();
+
+  /** Destructor
+   */
+  virtual ~IODFloatingPointImagePixelModule();
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module
+   *  @return Name of the module ("FloatingPointImagePixelModule")
+   */
+  virtual OFString getName() const;
+
+  /** Get pixel data type, always returns DataType::FLOAT for this class.
+   *  @return The data type of the pixel data
+   */
+  virtual DataType getDataType() const;
+
+  /** Get Float Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getFloatPixelPaddingValue(Float32& value,
+                                                const signed long pos = 0);
+
+  /** Get Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getFloatPixelPaddingRangeLimit(Float32& value,
+                                                     const signed long pos = 0);
+
+  /** Set Float Pixel Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FL) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFloatPixelPaddingValue(const Float32 value,
+                                                const OFBool checkValue = OFTrue);
+
+  /** Set Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FL) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFloatPixelPaddingRangeLimit(const Float32 value,
+                                                     const OFBool checkValue = OFTrue);
+
+private:
+
+  /// This module's name ("FloatingPointImagePixelModule")
+  static const OFString m_ModuleName;
+
+};
+
+
+/** Class representing Double Floating Point Image Pixel Module:
+ *
+ *  Samples Per Pixel: (US, 1, 1)
+ *  Photometric Interpretation (CS, 1, 1)
+ *  Rows: (US, 1, 1)
+ *  Columns: (US, 1, 1)
+ *  Bits Allocated: (US, 1 1)
+ *  Pixel Aspect Ratio: (IS,  2, 1C)
+ *  Double Float Pixel Padding Value: (FD, 1, 3)
+ *  Double Float Pixel Padding Range Limit: (FD, 1, 1C)
+ */
+class DCMTK_DCMIOD_EXPORT IODDoubleFloatingPointImagePixelModule: public IODImagePixelBase
+{
+
+public:
+
+  /// Data type of pixels
+  typedef Float64 value_type;
+
+  static const DcmTagKey pixel_data_tag;
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  IODDoubleFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                         OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  IODDoubleFloatingPointImagePixelModule();
+
+  /** Destructor
+   */
+  virtual ~IODDoubleFloatingPointImagePixelModule();
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module
+   *  @return Name of the module ("DoubleFloatingPointImagePixelModule")
+   */
+  virtual OFString getName() const;
+
+  /** Get pixel data type, always returns DataType::DOUBLE for this class.
+   *  @return The data type of the pixel data
+   */
+  virtual DataType getDataType() const;
+
+  /** Get Double Float Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getDoubleFloatPixelPaddingValue(Float64& value,
+                                                       const signed long pos = 0);
+
+  /** Get Double Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getDoubleFloatPixelPaddingRangeLimit(Float64& value,
+                                                            const signed long pos = 0);
+
+  /** Set Double Float Pixel Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FD) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatPixelPaddingValue(const Float64 value,
+                                                      const OFBool checkValue = OFTrue);
+
+  /** Set Double Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FD) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatPixelPaddingRangeLimit(const Float64 value,
+                                                           const OFBool checkValue = OFTrue);
+
+private:
+
+  /// This module's name ("DoubleFloatingPointImagePixelModule")
+  static const OFString m_ModuleName;
+
+};
+
+#endif // MODFLOATINGPOINTIMAGEPIXEL_H
index 7da8fc42ab7d7640c0b055f87e799b93f94d823b..76d7519fd5c9b2ad2bf579ba24828bb6d506d7dd 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -97,6 +97,13 @@ public:
   virtual OFCondition setPositionReferenceIndicator(const OFString &value,
                                                     const OFBool checkValue = OFTrue);
 
+  /** Make sure that the module contains a Frame of Reference Instance UID, i.e.\
+   *  a new one is created if empty. An invalid UID is corrected if desired.
+   *  @param  correctInvalid Correct invalid UID if OFTrue, otherwise do nothing
+   *
+   */
+  void ensureFrameOfReferenceUID(const OFBool correctInvalid = OFFalse);
+
 
 private:
 
index 5fa81148a91ea9c5da668a3112ee311748b6b3a2..70d289cdf3c4b0a47f7cdc649fb2c22726c9de72 100644 (file)
@@ -36,7 +36,7 @@
   * Study ID: (SH, 1, 2)
   * Accession Number: (SH, 1, 2)
   * Study Description: (LO, 1, 3)
-  * Issuer of Accession Number Sequence: (SQ, 3, 1)
+  * Issuer of Accession Number Sequence: (SQ, 1, 3)
   * Procedure Code Sequence: (SQ, 1-n, 3)
   * Reason for Performed Procedure Code Sequence: (SQ, 1-n, 3)
   */
index d76be12f8bf6dcaee6583d3818741084ee28d1b4..281edf59678ebf99300255389a365de732bce316 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
 #define MODIMAGEPIXEL_H
 
 #include "dcmtk/config/osconfig.h"
-#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
 
-/** Class representing the General Image Module:
+/** Class representing the Image Pixel Module:
  *
  *  Samples Per Pixel: (US, 1, 1)
  *  Photometric Interpretation (CS, 1, 1)
  *  Pixel Aspect Ratio: (IS,  2, 1C)
  *  ICC Profile: (OB, 1, 3)
  */
-class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODModule
+template<typename T>
+class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODImagePixelBase
 {
 
 public:
 
+  /// Data type of pixels
+  typedef T value_type;
+
+  static const DcmTagKey pixel_data_tag;
+
   /** Constructor
    *  @param  item The item to be used for data storage. If NULL, the
    *          class creates an empty data container.
@@ -62,6 +69,21 @@ public:
    */
   virtual ~IODImagePixelModule();
 
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
   /** Resets rules to their original values
    */
   virtual void resetRules();
@@ -71,44 +93,10 @@ public:
    */
   virtual OFString getName() const;
 
-  /** Get Samples per Pixel
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
+  /** Get pixel data type, always returns DataType::INTEGER for this class.
+   *  @return The data type of the pixel data
    */
-  virtual OFCondition getSamplesPerPixel(Uint16 &value,
-                                         const signed long pos = 0);
-
-  /** Get Photometric Interpretation
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-  */
-  virtual OFCondition getPhotometricInterpretation(OFString&value,
-                                                  const signed long pos = 0);
-
-  /** Get Rows
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition getRows(Uint16& value,
-                              const signed long pos = 0);
-
-  /** Get Columns
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition getColumns(Uint16& value,
-                                  const signed long pos = 0);
-   /** Get Bits Allocated
-    *  @param  value Reference to variable in which the value should be stored
-    *  @param  pos Index of the value to get (0..vm-1)
-    *  @return EC_Normal if successful, an error code otherwise
-    */
-  virtual OFCondition getBitsAllocated(Uint16& value,
-                                        const signed long pos = 0);
+  virtual DataType getDataType() const;
 
    /** Get Bits Stored
     *  @param  value Reference to variable in which the value should be stored
@@ -142,21 +130,13 @@ public:
   virtual OFCondition getPlanarConfiguration(Uint16& value,
                                              const signed long pos = 0);
 
-  /** Get Pixel Aspect Ratio
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-  */
-  virtual OFCondition getPixelAspectRatio(Uint16& value,
-                                          const signed long pos = 0);
-
   /** Get ICC Profile
    *  @param  values Reference to variable in which the values should be stored
    *  @return EC_Normal if successful, an error code otherwise
    */
   virtual OFCondition getICCProfile(OFVector<Uint8>& values);
 
-  /** set Samples per Pixel
+  /** Set Samples per Pixel
    *  @param  value Reference to variable in which the value should be stored
    *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
    *  @return EC_Normal if successful, an error code otherwise
@@ -172,23 +152,6 @@ public:
   virtual OFCondition setPhotometricInterpretation(const OFString& value,
                                                    const OFBool checkValue = OFTrue);
 
-  /** Set Rows
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
-   *          with other setter functions).
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition setRows(const Uint16 value,
-                              const OFBool checkValue = OFTrue);
-
-  /** Set Columns
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
-   *          with other setter functions).
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition setColumns(const Uint16 value,
-                                 const OFBool checkValue = OFTrue);
   /** Set Bits Allocated
    *  @param  value Reference to variable in which the value should be stored
    *  @param  checkValue Check 'value'. Not evaluated (here for consistency
@@ -234,16 +197,6 @@ public:
   virtual OFCondition setPlanarConfiguration(const Uint16 value,
                                              const OFBool checkValue = OFTrue);
 
-  /** Set Pixel Aspect Ratio
-   *  @param  verticalPixelSize The vertical pixel size (no unit)
-   *  @param  horizontalPixelSize The horizontal pixel size (no unit)
-   *  @param  checkValue Check 'value' for conformance with VR (IS)
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize,
-                                          const OFString& horizontalPixelSize,
-                                          const OFBool checkValue = OFTrue);
-
   /** Set ICC Profile
    *  @param  values Reference to variable in which the values should be stored
    *  @param  length Length of array provided in values parameter
@@ -251,6 +204,7 @@ public:
    */
   virtual OFCondition setICCProfile(const Uint8* values,
                                     const size_t length);
+
 private:
 
   /// This module's name ("ImagePixelModule")
diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h
new file mode 100644 (file)
index 0000000..7455e02
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point)
+ *
+ */
+
+#ifndef MODIMAGEPIXELBASE_H
+#define MODIMAGEPIXELBASE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/modbase.h"
+
+/** Base class for deriving Image Pixel Module, Floating Point Image Pixel
+ *  Module and Double Floating Point Image Pixel (and maybe more later)
+ */
+class DCMTK_DCMIOD_EXPORT IODImagePixelBase : public IODModule
+{
+
+public:
+
+    enum DataType
+    {
+      DATA_TYPE_UNKNOWN,
+      DATA_TYPE_FLOAT,
+      DATA_TYPE_DOUBLE,
+      DATA_TYPE_INTEGER
+    };
+
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  IODImagePixelBase(OFshared_ptr<DcmItem> item,
+                    OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  IODImagePixelBase();
+
+  /** Destructor
+   */
+  virtual ~IODImagePixelBase();
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module
+   *  @return Name of the module ("ImagePixelModule")
+   */
+  virtual OFString getName() const;
+
+  /** Get pixel data type
+   *  @return The data type of the pixel data
+   */
+  virtual DataType getDataType() const = 0;
+
+  // -------------------------------------------------------------------------
+  // Getters for all attribute that appear in all Image Pixel Modules
+  // -------------------------------------------------------------------------
+
+  /** Get Samples per Pixel
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getSamplesPerPixel(Uint16 &value,
+                                         const signed long pos = 0);
+
+  /** Get Photometric Interpretation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getPhotometricInterpretation(OFString&value,
+                                                  const signed long pos = 0);
+
+  /** Get Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRows(Uint16& value,
+                              const signed long pos = 0);
+
+  /** Get Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getColumns(Uint16& value,
+                                  const signed long pos = 0);
+
+  /** Get Bits Allocated
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBitsAllocated(Uint16& value,
+                                       const signed long pos = 0);
+
+  /** Get Pixel Aspect Ratio
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getPixelAspectRatio(Uint16& value,
+                                          const signed long pos = 0);
+
+  // -------------------------------------------------------------------------
+  // Setters for all attribute that appear in all Image Pixel Modules and which
+  // do not have fixed values in sub classes.
+  // -------------------------------------------------------------------------
+
+  /** Set Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRows(const Uint16 value,
+                              const OFBool checkValue = OFTrue);
+
+  /** Set Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setColumns(const Uint16 value,
+                                 const OFBool checkValue = OFTrue);
+
+  /** Set Pixel Aspect Ratio
+   *  @param  verticalPixelSize The vertical pixel size (no unit)
+   *  @param  horizontalPixelSize The horizontal pixel size (no unit)
+   *  @param  checkValue Check 'value' for conformance with VR (IS)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize,
+                                          const OFString& horizontalPixelSize,
+                                          const OFBool checkValue = OFTrue);
+
+private:
+
+  /// This module's name ("ImagePixelBase")
+  static const OFString m_ModuleName;
+
+};
+
+#endif // MODIMAGEPIXELBASE_H
diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
new file mode 100644 (file)
index 0000000..d6a5ba2
--- /dev/null
@@ -0,0 +1,281 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point)
+ *
+ */
+
+#ifndef MODIMAGEPIXELVARIANT_H
+#define MODIMAGEPIXELVARIANT_H
+
+#include "dcmtk/config/osconfig.h"
+
+#include "dcmtk/ofstd/ofvriant.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+
+
+/** Visitor for returning base class of given Image Pixel Module
+ */
+struct IODImagePixelVariantBaseVisitor
+{
+
+  /** Returns NULL since given argument is no pixel module at all
+   *  @return OFnullptr
+   */
+  IODImagePixelBase* operator()( OFmonostate& )
+  {
+    return OFnullptr;
+  }
+
+  /** Returns the base class pointer of all pixel modules
+   *  @param  base IODImagePixelBase pointer to given class instance
+   *  @return OFnullptr
+   */
+  IODImagePixelBase* operator()( IODImagePixelBase& base )
+  {
+    return &base;
+  }
+};
+
+/** Class representing different pixel modules from the DICOM standard:
+ *  The class Image Pixel Module, the Floating Point Image Pixel module
+ *  and the Double Floating Point Image Pixel module
+ */
+#ifdef DCMTK_USE_CXX11_STL
+template<typename... Types>
+class IODImagePixelVariant
+: public OFvariant<OFmonostate,Types...>
+#else
+template<OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(T)>
+class IODImagePixelVariant
+: public OFvariant<OFmonostate,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>
+#endif
+{
+
+public:
+
+  /** Constructor
+   */
+  IODImagePixelVariant()
+  : IODImagePixelVariant::variant()
+  {
+
+  }
+
+  /** Constructor, constructs pixel module based on given type
+   */
+  template<typename T>
+  IODImagePixelVariant(const T& t)
+  : IODImagePixelVariant::variant(t)
+  {
+
+  }
+
+  /** Destructor
+   */
+  ~IODImagePixelVariant()
+  {
+
+  }
+
+  /** Get name of module
+   *  @return Name of the actual module (e.g. "ImagePixelModule")
+   */
+  OFString getName() const
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getName();
+    return OFString();
+  }
+
+  /** Get pixel data type
+   *  @return The data type of the pixel data
+   */
+  IODImagePixelBase::DataType getDataType() const
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getDataType();
+    return IODImagePixelBase::DATA_TYPE_UNKNOWN;
+  }
+
+  /** Clear data (base class version)
+   */
+  void clearData()
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      pBase->clearData();
+  }
+
+  // -------------------------------------------------------------------------
+  // Getters for all attribute that appear in all Image Pixel Modules
+  // -------------------------------------------------------------------------
+
+  /** Get Samples per Pixel
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getSamplesPerPixel(Uint16 &value,
+                                 const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getSamplesPerPixel(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Photometric Interpretation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  OFCondition getPhotometricInterpretation(OFString&value,
+                                           const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getPhotometricInterpretation(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getRows(Uint16& value,
+                      const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getRows(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getColumns(Uint16& value,
+                         const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getColumns(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Bits Allocated
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getBitsAllocated(Uint16& value,
+                               const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getBitsAllocated(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Pixel Aspect Ratio
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getPixelAspectRatio(Uint16& value,
+                                  const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getPixelAspectRatio(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  // -------------------------------------------------------------------------
+  // Setters for all attribute that appear in all Image Pixel Modules and which
+  // do not have fixed values in sub classes.
+  // -------------------------------------------------------------------------
+
+  /** Set Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition setRows(const Uint16 value,
+                      const OFBool checkValue = OFTrue)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->setRows(value, checkValue);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Set Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition setColumns(const Uint16 value,
+                         const OFBool checkValue = OFTrue)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->setColumns(value, checkValue);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Set Pixel Aspect Ratio
+   *  @param  verticalPixelSize The vertical pixel size (no unit)
+   *  @param  horizontalPixelSize The horizontal pixel size (no unit)
+   *  @param  checkValue Check 'value' for conformance with VR (IS)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition setPixelAspectRatio(const OFString& verticalPixelSize,
+                                  const OFString& horizontalPixelSize,
+                                  const OFBool checkValue = OFTrue)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->setPixelAspectRatio(verticalPixelSize, horizontalPixelSize, checkValue);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Write pixel module base class data to given item
+   *  @param  dataset The item to write to (usually dataset level)
+   *  @return EC_Normal if successful, error otherwise
+   */
+  OFCondition write(DcmItem& dataset)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->write(dataset);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Read pixel module base class data from given item
+   *  @param  dataset The item to read from (usually dataset level)
+   *  @return EC_Normal if successful, error otherwise
+   */
+  OFCondition read(DcmItem& dataset)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->read(dataset);
+    return IOD_EC_InvalidPixelData;
+  }
+
+};
+
+#endif // MODIMAGEPIXELBASE_H
index 1d92731d1503cdf8ef49dbbd1ec85c7a486fb6a4..83ff45ed5e93b6ada6dfd24b227287f48d7229b3 100644 (file)
@@ -261,7 +261,8 @@ public:
   /** Convenience method to add Dimension Index.
    *  @param  dimensionIndexPointer The Dimension Index Pointer attribute
    *  @param  dimensionOrganizationUID The Dimension Organization UID of the dimension organization
-   *          the pointer refers to
+   *          the pointer refers to. If UID does not exist yet (in the Dimension
+   *          Organization Sequence, it is created there automatically).
    *  @param  functionalGroupPointer The functional group where the pointer attribute can be found
    *  @param  dimensionDescriptionLabel The description label of this dimension (optional)
    *  @param  dimensionIndexPrivateCreator The private creator of the Dimension Index Pointer
index cc78233407722801c625b2436ce08627478b0262..e4a21135851dbd0881d4bcfd7cafcdcb74836308 100644 (file)
@@ -198,6 +198,29 @@ public:
     virtual OFCondition setNTPSourceAddress(const OFString &value,
                                             const OFBool checkValue = OFTrue);
 
+protected:
+
+  /** Check whether given string is a valid value for attribute
+   *  Acquisition Time Synchronized
+   *  @param  value The value to check
+   *  @return OFTrue if value is valid for this attribute, OFFalse otherwise
+   */
+  virtual OFBool isValidAcquisitionTimeSynchronized(const OFString& value);
+
+  /** Check whether given string is a valid value for attribute
+   *  Time Distribution Protocol
+   *  @param  value The value to check
+   *  @return OFTrue if value is valid for this attribute, OFFalse otherwise
+   */
+  virtual OFBool isValidTimeDistributionProtocol(const OFString& value);
+
+  /** Check whether given string is a valid value for attribute
+   *  Synchronization Trigger
+   *  @param  value The value to check
+   *  @return OFTrue if value is valid for this attribute, OFFalse otherwise
+   */
+  virtual OFBool isValidSynchronizationTrigger(const OFString& value);
+
 private:
 
     /// Module name "SynchronizationModule"
index 51d62ff4f40128170e24c7cd208c2cf1a18891be..15a9f5806d7c533af1e8eb6af44bee604030daa8 100644 (file)
@@ -1,9 +1,9 @@
 # create library from source files
 DCMTK_ADD_LIBRARY(dcmiod
   cielabutil
+  iodcontentitemmacro
   iodcommn
   iodmacro
-  iodimage
   iodrules
   iodreferences
   iodutil
@@ -15,12 +15,14 @@ DCMTK_ADD_LIBRARY(dcmiod
   modenhusimage
   modenhusseries
   modequipment
+  modfloatingpointimagepixel
   modfor
   modgeneralimage
   modgeneralseries
   modgeneralstudy
   modhelp
   modimagepixel
+  modimagepixelbase
   modmultiframefg
   modmultiframedimension
   modpatient
index 21270be8ef36bdb4480998eca41a32eeec389110..944fe0017b383db4569afe2d375ca239e12f3703 100644 (file)
@@ -136,25 +136,21 @@ iodcommn.o: iodcommn.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodreferences.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
-iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmiod/iodimage.h ../include/dcmtk/dcmiod/iodcommn.h \
- ../include/dcmtk/dcmiod/iodrules.h \
+iodcontentitemmacro.o: iodcontentitemmacro.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
@@ -179,39 +175,53 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/oflimits.h \
  ../../config/include/dcmtk/config/arith.h \
- ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/cielabutil.h \
- ../include/dcmtk/dcmiod/modpatient.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmiod/modbase.h ../include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
  ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
@@ -219,18 +229,10 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
- ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
@@ -254,22 +256,7 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmiod/modbase.h \
- ../include/dcmtk/dcmiod/modpatientstudy.h \
- ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
- ../include/dcmtk/dcmiod/modgeneralstudy.h \
- ../include/dcmtk/dcmiod/iodmacro.h \
- ../include/dcmtk/dcmiod/modequipment.h \
- ../include/dcmtk/dcmiod/modgeneralseries.h \
- ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \
- ../include/dcmtk/dcmiod/modcommoninstanceref.h \
- ../include/dcmtk/dcmiod/iodreferences.h \
- ../include/dcmtk/dcmiod/modgeneralimage.h \
- ../include/dcmtk/dcmiod/modimagepixel.h \
- ../include/dcmtk/dcmiod/iodutil.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
 iodmacro.o: iodmacro.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodmacro.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -453,6 +440,8 @@ iodreferences.o: iodreferences.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
@@ -628,6 +617,8 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
@@ -641,9 +632,7 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcuid.h
 modacquisitioncontext.o: modacquisitioncontext.cc \
  ../../config/include/dcmtk/config/osconfig.h \
@@ -832,6 +821,8 @@ modbase.o: modbase.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h
 modcommoninstanceref.o: modcommoninstanceref.cc \
  ../../config/include/dcmtk/config/osconfig.h \
@@ -1029,7 +1020,9 @@ modenhequipment.o: modenhequipment.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modenhusimage.o: modenhusimage.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modenhusimage.h \
@@ -1349,7 +1342,83 @@ modequipment.o: modequipment.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
+modfloatingpointimagepixel.o: modfloatingpointimagepixel.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h \
@@ -1420,7 +1489,9 @@ modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modgeneralimage.o: modgeneralimage.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modgeneralimage.h \
@@ -1808,6 +1879,7 @@ modhelp.o: modhelp.cc ../../config/include/dcmtk/config/osconfig.h \
 modimagepixel.o: modimagepixel.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modimagepixel.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
  ../include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
@@ -1877,7 +1949,84 @@ modimagepixel.o: modimagepixel.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
+modimagepixelbase.o: modimagepixelbase.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modmultiframedimension.o: modmultiframedimension.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modmultiframedimension.h \
@@ -1954,7 +2103,9 @@ modmultiframedimension.o: modmultiframedimension.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modmultiframefg.o: modmultiframefg.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modmultiframefg.h \
@@ -2547,7 +2698,9 @@ modsynchronization.o: modsynchronization.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modusfor.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
@@ -2621,4 +2774,6 @@ modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
index 5cfeb14568e58d6c2921831b4ba05f61cda7157a..64eb266867b409223f76dedbfd47bf5382e66aa3 100644 (file)
@@ -20,14 +20,13 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/incl
 
 LOCALDEFS =
 
-objs =  cielabutil.o iodcommn.o  iodmacro.o iodimage.o iodrules.o iodutil.o \
-       iodtypes.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \
+objs =  cielabutil.o iodcommn.o  iodcontentitemmacro.o iodmacro.o iodreferences.o iodrules.o \
+       iodtypes.o iodutil.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \
        modenhequipment.o modenhusimage.o modenhusseries.o modequipment.o \
-       modfor.o modgeneralimage.o modgeneralseries.o modgeneralstudy.o \
-       modhelp.o  modimagepixel.o  modmultiframefg.o  \
-       modmultiframedimension.o  modpatient.o  modpatientstudy.o \
-       modsegmentationseries.o  modsopcommon.o  modsynchronization.o \
-       modusfor.o
+       modfloatingpointimagepixel.o modfor.o modgeneralimage.o modgeneralseries.o \
+       modgeneralstudy.o modhelp.o  modimagepixelbase.o modimagepixel.o modmultiframedimension.o \
+       modmultiframefg.o modpatient.o  modpatientstudy.o modsegmentationseries.o modsopcommon.o \
+       modsynchronization.o modusfor.o
 
 
 library = libdcmiod.$(LIBEXT)
index 467d91c39e8ed5dae79b650dd8c486683714e275..03c7f9761c69ed6a1828c7d34b83955525138322 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -51,6 +51,32 @@ DcmIODCommon::DcmIODCommon()
 }
 
 
+DcmIODCommon::DcmIODCommon(const DcmIODCommon& rhs)
+: m_Item(rhs.m_Item),
+  m_Rules(rhs.m_Rules),
+  m_Patient(m_Item, m_Rules),
+  m_PatientStudy(m_Item, m_Rules),
+  m_Study(m_Item, m_Rules),
+  m_Equipment(m_Item, m_Rules),
+  m_Series(m_Item, m_Rules),
+  m_FrameOfReference(m_Item, m_Rules),
+  m_SOPCommon(m_Item, m_Rules),
+  m_CommonInstanceReferenceModule(m_Item, m_Rules),
+  m_Modules()
+{
+  // Set initial values for a new SOP instance
+  ensureInstanceUIDs(OFFalse);
+  m_Modules.push_back(&m_Patient);
+  m_Modules.push_back(&m_PatientStudy);
+  m_Modules.push_back(&m_Study);
+  m_Modules.push_back(&m_Equipment);
+  m_Modules.push_back(&m_Series);
+  m_Modules.push_back(&m_FrameOfReference);
+  m_Modules.push_back(&m_SOPCommon);
+  m_Modules.push_back(&m_CommonInstanceReferenceModule);
+}
+
+
 DcmIODCommon::~DcmIODCommon()
 {
 }
@@ -58,12 +84,13 @@ DcmIODCommon::~DcmIODCommon()
 
 void DcmIODCommon::clearData()
 {
-  OFVector<IODModule*>::iterator it = m_Modules.begin();
-  while (it != m_Modules.end())
-  {
-    (*it)->clearData();
-    it++;
-  }
+  // TODO
+//   OFVector<IODModule*>::iterator it = m_Modules.begin();
+//   while (it != m_Modules.end())
+//   {
+//     (*it)->clearData();
+//     it++;
+//   }
 }
 
 
@@ -178,6 +205,42 @@ OFCondition DcmIODCommon::import(DcmItem& dataset,
 }
 
 
+OFCondition DcmIODCommon::importPatientStudyFoR(const OFString& filename,
+                                                const OFBool usePatient,
+                                                const OFBool useStudy,
+                                                const OFBool useSeries,
+                                                const OFBool useFoR)
+{
+  DCMIOD_WARN("This function is deprecated and will be removed in later versions of DCMTK, please use import()");
+  return import(filename, usePatient, useStudy, useSeries, useFoR);
+}
+
+
+OFCondition DcmIODCommon::import(const OFString& filename,
+                                 const OFBool usePatient,
+                                 const OFBool useStudy,
+                                 const OFBool useSeries,
+                                 const OFBool useFoR)
+{
+  DcmFileFormat dcmff;
+  OFCondition result = dcmff.loadFile(filename.c_str());
+  if ( result.good() )
+  {
+    DcmDataset *dset = dcmff.getDataset();
+    if (dset != NULL)
+    {
+      result = import(*dset, usePatient, useStudy, useSeries, useFoR);
+    }
+    else
+    {
+      DCMIOD_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information");
+      result = EC_IllegalCall;
+    }
+  }
+  return result;
+}
+
+
 void DcmIODCommon::ensureInstanceUIDs(const OFBool correctInvalid)
 {
   m_Study.ensureInstanceUID(correctInvalid);
diff --git a/dcmiod/libsrc/iodcontentitemmacro.cc b/dcmiod/libsrc/iodcontentitemmacro.cc
new file mode 100644 (file)
index 0000000..bc76df8
--- /dev/null
@@ -0,0 +1,800 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Content Item Macro
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofstream.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvrdt.h"
+#include "dcmtk/dcmdata/dcvrda.h"
+#include "dcmtk/dcmdata/dcvrtm.h"
+
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmiod/iodcontentitemmacro.h"
+
+const OFString ContentItemMacro::ReferencedSOPSequenceItem::m_ComponentName = "ReferencedSOPSequenceItem";
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(OFshared_ptr<DcmItem> item,
+                                                     OFshared_ptr<IODRules> rules,
+                                                     IODComponent* parent)
+: IODComponent(item, rules, parent)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(IODComponent* parent)
+: IODComponent(parent)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs)
+: IODComponent(rhs)
+{
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::~ReferencedSOPSequenceItem()
+{
+  // nothing to do
+}
+
+
+OFString ContentItemMacro::ReferencedSOPSequenceItem::getName() const
+{
+  return m_ComponentName;
+}
+
+
+void ContentItemMacro::ReferencedSOPSequenceItem::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_ReferencedFrameNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ReferencedSegmentNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue);
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::read(
+  DcmItem& source,
+  const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+  return EC_Normal;
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  result = IODComponent::write(destination);
+
+  return result;
+}
+
+
+SOPInstanceReferenceMacro& ContentItemMacro::ReferencedSOPSequenceItem::getSOPInstanceReferenceMacro()
+{
+  return m_SOPInstanceReferenceMacro;
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedFrameNumber(
+  OFString &value,
+  const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ReferencedFrameNumber, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedSegmentNumber(
+  Uint16 &value,
+  const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_ReferencedSegmentNumber, value, pos);
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedFrameNumber(
+  const OFString &value,
+  const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ReferencedFrameNumber, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedSegmentNumber(
+  const Uint16 value,
+  const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint16(DCM_ReferencedSegmentNumber, value);
+}
+
+
+const OFString ContentItemMacro::m_ModuleName = "ContentItemMacro";
+
+
+ContentItemMacro::ContentItemMacro()
+: IODComponent()
+{
+  resetRules();
+}
+
+
+ContentItemMacro::ContentItemMacro(OFshared_ptr<DcmItem> item,
+                                   OFshared_ptr<IODRules> rules)
+: IODComponent(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+ContentItemMacro::ContentItemMacro(const ContentItemMacro& rhs)
+: IODComponent(rhs)
+{
+  if (this == &rhs)
+    return;
+
+  OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_ConceptCodeSequence.begin();
+  while (it != rhs.m_ConceptCodeSequence.end())
+  {
+    CodeSequenceMacro* macro = new CodeSequenceMacro(**it);
+    m_ConceptCodeSequence.push_back(macro);
+    it++;
+  }
+
+  it = rhs.m_ConceptNameCodeSequence.begin();
+  while (it != rhs.m_ConceptNameCodeSequence.end())
+  {
+    CodeSequenceMacro* macro = new CodeSequenceMacro(**it);
+    m_ConceptNameCodeSequence.push_back(macro);
+    it++;
+  }
+
+  it = rhs.m_MeasurementUnitsCodeSequence.begin();
+  while (it != rhs.m_MeasurementUnitsCodeSequence.end())
+  {
+    CodeSequenceMacro* macro = new CodeSequenceMacro(**it);
+    m_MeasurementUnitsCodeSequence.push_back(macro);
+    it++;
+  }
+
+  OFVector<ReferencedSOPSequenceItem*>::const_iterator m = rhs.m_ReferencedSOPSequence.begin();
+  while (m != rhs.m_ReferencedSOPSequence.end())
+  {
+    ReferencedSOPSequenceItem* item = new ReferencedSOPSequenceItem(**m);
+    m_ReferencedSOPSequence.push_back(item);
+    m++;
+  }
+
+}
+
+
+ContentItemMacro::~ContentItemMacro()
+{
+  DcmIODUtil::freeContainer(m_ConceptNameCodeSequence);
+  DcmIODUtil::freeContainer(m_ConceptCodeSequence);
+  DcmIODUtil::freeContainer(m_MeasurementUnitsCodeSequence);
+  DcmIODUtil::freeContainer(m_ReferencedSOPSequence);
+}
+
+
+OFString ContentItemMacro::getName() const
+{
+  return m_ModuleName;
+}
+
+
+void ContentItemMacro::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_ValueType, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ConceptNameCodeSequence, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DateTime, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Date, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Time, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PersonName, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_UID, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_TextValue, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ConceptCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_NumericValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_FloatingPointValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RationalNumeratorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RationalDenominatorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ReferencedSOPSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+}
+
+
+OFCondition ContentItemMacro::read(DcmItem& source,
+                                   const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+  DcmIODUtil::readSubSequence(source, DCM_ConceptNameCodeSequence, m_ConceptNameCodeSequence, m_Rules->getByTag(DCM_ConceptNameCodeSequence));
+  DcmIODUtil::readSubSequence(source, DCM_ConceptCodeSequence, m_ConceptCodeSequence, m_Rules->getByTag(DCM_ConceptCodeSequence));
+  DcmIODUtil::readSubSequence(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCodeSequence, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence));
+  DcmIODUtil::readSubSequence(source, DCM_ReferencedSOPSequence, m_ReferencedSOPSequence, m_Rules->getByTag(DCM_ReferencedSOPSequence));
+
+  return EC_Normal;
+}
+
+
+OFCondition ContentItemMacro::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  if(CodeSequenceMacro* pConceptNameCodeSequence = getConceptNameCodeSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ConceptNameCodeSequence, *pConceptNameCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptNameCodeSequence));
+  if(CodeSequenceMacro* pConceptCodeSequence = getConceptCodeSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ConceptCodeSequence, *pConceptCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptCodeSequence));
+  if(CodeSequenceMacro* pMeasurementUnitsCodeSequence = getMeasurementUnitsCodeSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, *pMeasurementUnitsCodeSequence, *m_Item, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence));
+  if(ReferencedSOPSequenceItem* pReferencedSOPSequence = getReferencedSOPSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ReferencedSOPSequence, *pReferencedSOPSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedSOPSequence));
+
+  if (result.good())
+  {
+    result = IODComponent::write(destination);
+  }
+
+  return result;
+}
+
+
+OFCondition ContentItemMacro::getValueType(OFString &value,
+                                           const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getValueType(ValueType& value) const
+{
+  OFString str;
+  OFCondition result = DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, str, 0);
+  if (result == EC_Normal)
+  {
+    if (!str.empty())
+    {
+      if (str == "DATE")
+        value = VT_DATE;
+      else if (str == "TIME")
+        value = VT_TIME;
+      else if (str == "DATETIME")
+        value = VT_DATETIME;
+      else if (str == "PNAME")
+        value = VT_PNAME;
+      else if (str == "UIDREF")
+        value = VT_UIDREF;
+      else if (str == "TEXT")
+        value = VT_TEXT;
+      else if (str == "CODE")
+        value = VT_CODE;
+      else if (str == "NUMERIC")
+        value = VT_NUMERIC;
+      else if (str == "COMPOSITE")
+        value = VT_COMPOSITE;
+      else if (str == "IMAGE")
+        value = VT_IMAGE;
+      else
+        value = VT_UNKNOWN;
+    }
+    else
+    {
+      value = VT_EMPTY;
+    }
+  }
+  else if (result == EC_TagNotFound)
+  {
+    value = VT_EMPTY;
+  }
+  else
+  {
+    DCMIOD_ERROR("Unexpected error, could not get Value Type: " << result.text());
+    value = VT_UNKNOWN;
+  }
+  return result;
+}
+
+
+CodeSequenceMacro* ContentItemMacro::getConceptNameCodeSequence()
+{
+  return m_ConceptNameCodeSequence.empty() ? OFnullptr : *m_ConceptNameCodeSequence.begin();
+}
+
+OFVector<CodeSequenceMacro*>& ContentItemMacro::getEntireConceptNameCodeSequence()
+{
+  return m_ConceptNameCodeSequence;
+}
+
+
+OFCondition ContentItemMacro::getDateTime(OFString &value,
+                                          const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_DateTime, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getDate(OFString &value,
+                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_Date, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getTime(OFString &value,
+                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_Time, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getPersonName(OFString &value,
+                                            const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PersonName, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getUID(OFString &value,
+                                     const signed long pos) const
+{
+  return m_Item->findAndGetOFString(DCM_UID, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getTextValue(OFString &value,
+                                           const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_TextValue, *m_Item, value, pos);
+}
+
+
+CodeSequenceMacro* ContentItemMacro::getConceptCodeSequence()
+{
+  return m_ConceptCodeSequence.empty() ? OFnullptr : *m_ConceptCodeSequence.begin();
+}
+
+OFVector<CodeSequenceMacro*>& ContentItemMacro::getEntireConceptCodeSequence()
+{
+  return m_ConceptCodeSequence;
+}
+
+
+OFCondition ContentItemMacro::getNumericValue(OFString &value,
+                                              const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_NumericValue, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getFloatingPointValue(Float64 &value,
+                                                    const signed long pos) const
+{
+  return m_Item->findAndGetFloat64(DCM_FloatingPointValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getRationalNumeratorValue(Sint32 &value,
+                                                        const signed long pos) const
+{
+  return m_Item->findAndGetSint32(DCM_RationalNumeratorValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getRationalDenominatorValue(Uint32 &value,
+                                                          const signed long pos) const
+{
+  return m_Item->findAndGetUint32(DCM_RationalDenominatorValue, value, pos);
+}
+
+
+CodeSequenceMacro* ContentItemMacro::getMeasurementUnitsCodeSequence()
+{
+  return m_MeasurementUnitsCodeSequence.empty() ? OFnullptr : *m_MeasurementUnitsCodeSequence.begin();
+}
+
+OFVector<CodeSequenceMacro*>& ContentItemMacro::getEntireMeasurementUnitsCodeSequence()
+{
+  return m_MeasurementUnitsCodeSequence;
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem* ContentItemMacro::getReferencedSOPSequence()
+{
+  return m_ReferencedSOPSequence.empty() ? OFnullptr : *m_ReferencedSOPSequence.begin();
+}
+
+OFVector<ContentItemMacro::ReferencedSOPSequenceItem*>& ContentItemMacro::getEntireReferencedSOPSequence()
+{
+  return m_ReferencedSOPSequence;
+}
+
+
+OFCondition ContentItemMacro::setValueType(const OFString &value,
+                                           const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ValueType, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setValueType(const ContentItemMacro::ValueType value,
+                                           const OFBool checkValue)
+{
+  (void)checkValue;
+  OFCondition result;
+  switch (value)
+  {
+    case VT_DATE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATE");
+      break;
+    }
+    case VT_TIME:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TIME");
+      break;
+    }
+    case VT_DATETIME:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATETIME");
+      break;
+    }
+    case VT_PNAME:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "PNAME");
+      break;
+    }
+    case VT_UIDREF:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "UIDREF");
+      break;
+    }
+    case VT_TEXT:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TEXT");
+      break;
+    }
+    case VT_CODE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "CODE");
+      break;
+    }
+    case VT_NUMERIC:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "NUMERIC");
+      break;
+    }
+    case VT_COMPOSITE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "COMPOSITE");
+      break;
+    }
+    case VT_IMAGE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "IMAGE");
+      break;
+    }
+    default:
+    {
+      result = IOD_EC_InvalidElementValue;
+    }
+  }
+  return result;
+}
+
+
+
+OFCondition ContentItemMacro::setDateTime(const OFString &value,
+                                          const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_DateTime, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setDate(const OFString &value,
+                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_Date, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setTime(const OFString &value,
+                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_Time, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setPersonName(const OFString &value,
+                                            const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_PersonName, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setUID(const OFString &value,
+                                     const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertOFStringArray(DCM_UID, value);
+}
+
+
+OFCondition ContentItemMacro::setTextValue(const OFString &value,
+                                           const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_TextValue, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setNumericValue(const OFString &value,
+                                              const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_NumericValue, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setFloatingPointValue(const Float64 value,
+                                                    const unsigned long pos,
+                                                    const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat64(DCM_FloatingPointValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::setRationalNumeratorValue(const Sint32 value,
+                                                        const unsigned long pos,
+                                                        const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertSint32(DCM_RationalNumeratorValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::setRationalDenominatorValue(const Uint32 value,
+                                                          const unsigned long pos,
+                                                          const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint32(DCM_RationalDenominatorValue, value, pos);
+}
+
+
+OFString ContentItemMacro::toString()
+{
+  ValueType vt;
+  getValueType(vt);
+  OFStringStream oss;
+  if (getConceptNameCodeSequence())
+  {
+    oss << getConceptNameCodeSequence()->toString() << ": ";
+  }
+  else
+  {
+    oss << "<no name>: ";
+  }
+  switch (vt)
+  {
+    case VT_CODE:
+      oss << "CODE: " << getConceptCodeSequence()->toString();
+      break;
+    case VT_COMPOSITE:
+    {
+      OFString sopClass, sopInstance, frameNumber;
+      if (getReferencedSOPSequence())
+      {
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass);
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance);
+        getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber);
+        oss << "COMPOSITE: " << sopClass << " / " << sopInstance;
+        if (!frameNumber.empty())
+        {
+          oss << " / Frames: " << frameNumber;
+        }
+        Uint16 val,pos;
+        val = pos = 0;
+        if (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good())
+        {
+          oss << " / Segments: ";
+          while (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good())
+          {
+            oss << val << " ";
+            pos++;
+          }
+        }
+      }
+      else
+      {
+        oss << "COMPOSITE: <None>";
+      }
+      break;
+    }
+    case VT_DATE:
+    {
+      OFString date;
+      getDate(date);
+      oss << "DATE: " << date;
+      break;
+    }
+    case VT_DATETIME:
+    {
+      OFString datetime;
+      getDateTime(datetime);
+      oss << "DATETIME: " << datetime;
+      break;
+    }
+    case VT_IMAGE:
+    {
+      OFString sopClass, sopInstance, frameNumber;
+      if (getReferencedSOPSequence())
+      {
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass);
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance);
+        getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber);
+        oss << "IMAGE: " << sopClass << " / " << sopInstance;
+        if (!frameNumber.empty())
+        {
+          oss << " / Frames: " << frameNumber;
+        }
+      }
+      else
+      {
+        oss << "IMAGE: <None>";
+      }
+      break;
+    }
+    case VT_NUMERIC:
+    {
+      OFString val;
+      getNumericValue(val);
+      oss << "NUMERIC: " << val;
+      if (getMeasurementUnitsCodeSequence())
+      {
+        oss << ", Units: " << getMeasurementUnitsCodeSequence()->toString() << ")";
+      }
+      Uint16 pos =0;
+      Float64 fl64 = 0;
+      if (getFloatingPointValue(fl64, pos).good())
+      {
+        oss << ", Float value(s): " ;
+        do
+        {
+          oss << val << " ";
+          pos++;
+        } while (getFloatingPointValue(fl64, pos).good());
+      }
+      else
+      {
+        oss << ", Float value(s): <none>";
+      }
+      pos = 0;
+      Sint32 si32 = 0;
+      if (getRationalNumeratorValue(si32, pos).good())
+      {
+        oss << ", Numerator value(s): " ;
+        do
+        {
+          oss << val << " ";
+          pos++;
+        } while (getRationalNumeratorValue(si32, pos).good());
+      }
+      pos = 0;
+      Uint32 ui32 = 0;
+      if (getRationalDenominatorValue(ui32, pos).good())
+      {
+        oss << ", Denominator value(s): " ;
+        do
+        {
+          oss << val << " ";
+          pos++;
+        } while (getRationalDenominatorValue(ui32, pos).good());
+      }
+
+      break;
+    }
+    case VT_PNAME:
+    {
+      OFString val;
+      getPersonName(val);
+      oss << "PNAME: " << val;
+      break;
+    }
+    case VT_TEXT:
+    {
+      OFString val;
+      getTextValue(val);
+      oss << "TEXT: " << val;
+      break;
+    }
+    case VT_TIME:
+    {
+      OFString val;
+      getTime(val);
+      oss << "TIME: " << val;
+      break;
+    }
+    case VT_UIDREF:
+    {
+      OFString val;
+      getUID(val);
+      oss << "UIDREF: " << val;
+      break;
+    }
+    case VT_EMPTY:
+    {
+      oss << "<None>";
+      break;
+    }
+    case VT_UNKNOWN:
+    {
+      OFString val;
+      getValueType(val);
+      oss << "<Unknown: " << val << ">";
+      break;
+    }
+    default:
+    {
+      oss << "<Internal error>";
+    }
+  }
+  OFSTRINGSTREAM_GETOFSTRING(oss, val);
+  return val;
+}
+
diff --git a/dcmiod/libsrc/iodimage.cc b/dcmiod/libsrc/iodimage.cc
deleted file mode 100644 (file)
index 482f7cc..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- *
- *  Copyright (C) 2015, Open Connections GmbH
- *  All rights reserved.  See COPYRIGHT file for details.
- *
- *  This software and supporting documentation are maintained by
- *
- *    OFFIS e.V.
- *    R&D Division Health
- *    Escherweg 2
- *    D-26121 Oldenburg, Germany
- *
- *
- *  Module: dcmiod
- *
- *  Author: Michael Onken
- *
- *  Purpose: Class repres. image IOD by exposing common image IOD attributes
- *
- */
-
-#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
-#include "dcmtk/dcmiod/iodimage.h"
-#include "dcmtk/dcmiod/iodutil.h"
-
-DcmIODImage::DcmIODImage()
-: m_GeneralImage(getData(), getRules()),
-  m_ImagePixel(getData(), getRules())
-{
-  // Nothing to do
-}
-
-
-IODGeneralImageModule& DcmIODImage::getGeneralImage()
-{
-  return m_GeneralImage;
-}
-
-
-IODImagePixelModule& DcmIODImage::getImagePixel()
-{
-  return m_ImagePixel;
-}
-
-
-DcmIODImage::~DcmIODImage()
-{
-  // IOD rules created in DcmIODImage are cleared in DcmIODCommon::~DcmIODCommon()
-}
-
-
-void DcmIODImage::clearData()
-{
-  // clear all attributes from base classes
-  DcmIODCommon::clearData();
-  m_GeneralImage.clearData();
-  m_ImagePixel.clearData();
-}
-
-
-OFCondition DcmIODImage::read(DcmItem &dataset)
-{
-  // re-initialize object
-  DcmIODImage::clearData();
-
-  // read from base classes
-  DcmIODCommon::read(dataset);
-  m_GeneralImage.read(dataset, OFTrue /* clear old data */);
-  m_ImagePixel.read(dataset, OFTrue /* clear old data */);
-
-  return EC_Normal;
-}
-
-
-OFCondition DcmIODImage::write(DcmItem &dataset)
-{
-  OFCondition result = EC_Normal;
-
-  // Write base class attributes to dataset
-  result = DcmIODCommon::write(dataset);
-
-  // Write extra modules to dataset
-  if (result.good())
-    result = m_GeneralImage.write(dataset);
-  if (result.good())
-    result = m_ImagePixel.write(dataset);
-
-  return result;
-}
index c95174caa4274e91fa7fdc661599d4cae7ffdc8a..4386202c24377faa0d0b2bba211117c950a1e81f 100644 (file)
@@ -22,6 +22,7 @@
 #include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
 #include "dcmtk/dcmiod/iodmacro.h"
 #include "dcmtk/dcmiod/iodutil.h" // for static IOD helpers
+#include "dcmtk/ofstd/ofstream.h"
 
 
 // --------------------------- Code Sequence Macro ---------------------------
@@ -144,6 +145,30 @@ OFCondition CodeSequenceMacro::getCodeMeaning(OFString &value,
 }
 
 
+OFBool CodeSequenceMacro::empty()
+{
+  OFString val;
+  getCodeValue(val);
+  if (val.empty())
+  {
+    getCodingSchemeDesignator(val);
+    if (val.empty())
+    {
+      getCodingSchemeVersion(val);
+      if (val.empty())
+      {
+        getCodingSchemeDesignator(val);
+        if (val.empty())
+        {
+          return OFTrue;
+        }
+      }
+    }
+  }
+  return OFFalse;
+}
+
+
 // -- set dicom attributes --
 
 OFCondition CodeSequenceMacro::setCodeValue(const OFString &value,
@@ -204,6 +229,7 @@ OFCondition CodeSequenceMacro::set(const OFString& value,
   return result;
 }
 
+
 // ---------------------- CodeWithModifiers----------------------
 
 CodeWithModifiers::CodeWithModifiers(const OFString& modifierType,
@@ -265,7 +291,10 @@ OFCondition CodeWithModifiers::check(const OFBool quiet)
   }
   if (result.bad())
   {
-    DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers");
+    if (!quiet)
+    {
+      DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers");
+    }
   }
   return result;
 }
@@ -368,6 +397,20 @@ CodeWithModifiers::~CodeWithModifiers()
 }
 
 
+OFString CodeSequenceMacro::toString()
+{
+  OFString d,m,v;
+  getCodeValue(v);
+  getCodeMeaning(m);
+  getCodingSchemeDesignator(d);
+  OFStringStream oss;
+  oss << "(" << d << "," << v << "," << m << ")";
+  OFSTRINGSTREAM_GETOFSTRING(oss, msg);
+  return msg;
+
+}
+
+
 // ---------------------- SeriesAndInstanceReferenceMacro----------------------
 
 const OFString IODSeriesAndInstanceReferenceMacro::m_ComponentName = "SeriesAndInstanceReferenceMacro";
@@ -689,8 +732,7 @@ OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID,
 OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID,
                                                    const OFString& sopInstanceUID,
                                                    const OFVector< Uint16 >& refFramesOrSegments,
-                                                   ImageSOPInstanceReferenceMacro*& result
-                                                   )
+                                                   ImageSOPInstanceReferenceMacro*& result)
 {
   OFCondition cond = create(sopClassUID, sopInstanceUID, result);
   if (cond.good())
@@ -828,7 +870,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const OFString& type) :
   m_Type(type),
   m_AnatomicRegion(),
   m_AnatomicRegionModifier(),
-  m_PrimaryAnatomicStructure()
+  m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence)
 {
   m_Type = type;
 }
@@ -838,12 +880,19 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs)
 :  m_Type(rhs.m_Type),
    m_AnatomicRegion(),
    m_AnatomicRegionModifier(),
-   m_PrimaryAnatomicStructure()
+   m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence)
+{
+  *this = rhs;
+}
+
+
+GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs)
 {
   if (this != &rhs)
   {
+    clearData();
     m_Type = rhs.m_Type;
-    m_AnatomicRegion = m_AnatomicRegion;
+    m_AnatomicRegion = rhs.m_AnatomicRegion;
     m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure;
 
     OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicRegionModifier.begin();
@@ -853,6 +902,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs)
       it++;
     }
   }
+  return *this;
 }
 
 
@@ -884,7 +934,12 @@ OFCondition GeneralAnatomyMacro::check(const OFBool quiet)
     if (result.bad()) return result;
     it++;
   }
-  result = m_PrimaryAnatomicStructure.check(quiet);
+  // Primary Anatomic Structure is optional (type 3), so only check if
+  // user intended to fill in something.
+  if (!m_PrimaryAnatomicStructure.empty())
+  {
+    result = m_PrimaryAnatomicStructure.check(quiet);
+  }
   return result;
 }
 
@@ -920,7 +975,10 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source,
   /* read Anatomic Region Sequence item into Code Sequence Macro */
   DcmIODUtil::readSingleItem<CodeSequenceMacro>(source, DCM_AnatomicRegionSequence, m_AnatomicRegion, m_Type, "GeneralAnatomyMacro");
 
-  /* Get the single item from Anatomic Region Sequence */
+  /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */
+  DcmIODUtil::readSingleItem(source, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, "3", "GeneralAnatomyMacro");
+
+  /* Get the single item from Anatomic Region Sequence and read modifier if found */
   DcmItem* localItem = NULL;
   if ( source.findAndGetSequenceItem(DCM_AnatomicRegionSequence, localItem).bad() )
   {
@@ -936,9 +994,6 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source,
     "3",
     "GeneralAnatomyMacro" );
 
-  /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */
-  m_PrimaryAnatomicStructure.read(source);
-
   return result;
 }
 
@@ -950,295 +1005,60 @@ OFCondition GeneralAnatomyMacro::write(DcmItem& item)
 
   /* delete old data */
   item.findAndDeleteElement(DCM_AnatomicRegionSequence);
+  item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence);
 
   /* Write sub structures */
   DcmIODUtil::writeSingleItem<CodeSequenceMacro>(result, DCM_AnatomicRegionSequence, m_AnatomicRegion, item, m_Type, "GeneralAnatomyMacro");
-  DcmIODUtil::writeSubSequence<OFVector<CodeSequenceMacro*> >
-  ( result,
-    DCM_AnatomicRegionModifierSequence,
-    m_AnatomicRegionModifier,
-    item,
-    "1-n",
-    "3",
-    "GeneralAnatomyMacro");
-  return result;
-}
-
-
-GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs)
-{
-  if (this != &rhs)
+  if (result.good())
   {
-    clearData();
-    m_Type = rhs.m_Type;
-    m_AnatomicRegion = rhs.m_AnatomicRegion;
-    m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure;
-
-    OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicRegionModifier.begin();
-    while ( it != rhs.m_AnatomicRegionModifier.end() )
+    DcmItem* seqItem = NULL;
+    result = item.findAndGetSequenceItem(DCM_AnatomicRegionSequence, seqItem, 0);
+    if (result.good())
     {
-      m_AnatomicRegionModifier.push_back( new CodeSequenceMacro(**it) );
-      it++;
+      DcmIODUtil::writeSubSequence<OFVector<CodeSequenceMacro*> >
+      ( result,
+        DCM_AnatomicRegionModifierSequence,
+        m_AnatomicRegionModifier,
+        *seqItem,
+        "1-n",
+        "3",
+        "GeneralAnatomyMacro");
     }
   }
-  return *this;
-}
-
-
-// ---------------------- PrimaryAnatomicStructureMacroItem ------------------
-
-PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem() :
-  m_AnatomicStructure(),
-  m_AnatomicStructureModifier()
-{
+  DcmIODUtil::writeSingleItem(result, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, item, "3", "GeneralAnatomyMacro");
+  return result;
 }
 
 
-PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs) :
-  m_AnatomicStructure(),
-  m_AnatomicStructureModifier()
+int GeneralAnatomyMacro::compare(const GeneralAnatomyMacro& rhs) const
 {
-  if (this != &rhs)
+  int result = m_AnatomicRegion.compare(rhs.m_AnatomicRegion);
+  if (result == 0)
   {
-    m_AnatomicStructure = rhs.m_AnatomicStructure;
-    OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicStructureModifier.begin();
-    while ( it != rhs.m_AnatomicStructureModifier.begin() )
+    if (m_AnatomicRegionModifier.size() > rhs.m_AnatomicRegionModifier.size())
     {
-      m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it));
-      it++;
+      return 1;
     }
-  }
-}
-
-
-PrimaryAnatomicStructureMacroItem& PrimaryAnatomicStructureMacroItem::operator=(const PrimaryAnatomicStructureMacroItem& rhs)
-{
-  if (this != &rhs)
-  {
-    clearData();
-    m_AnatomicStructure = rhs.m_AnatomicStructure;
-    OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicStructureModifier.begin();
-    while ( it != rhs.m_AnatomicStructureModifier.begin() )
+    else if (m_AnatomicRegionModifier.size() < rhs.m_AnatomicRegionModifier.size())
     {
-      m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it));
-      it++;
+      return -1;
     }
-  }
-  return *this;
-}
-
-
-PrimaryAnatomicStructureMacroItem::~PrimaryAnatomicStructureMacroItem()
-{
-  clearData();
-}
-
-
-void PrimaryAnatomicStructureMacroItem::clearData()
-{
-  m_AnatomicStructure.clearData();
-  m_AnatomicStructureModifier.clear();
-  DcmIODUtil::freeContainer(m_AnatomicStructureModifier);
-}
-
-
-OFCondition PrimaryAnatomicStructureMacroItem::check(const OFBool quiet)
-{
-  OFCondition result = m_AnatomicStructure.check();
-  if (result.bad()) return result;
-
-  OFVector<CodeSequenceMacro*>::iterator it = m_AnatomicStructureModifier.begin();
-  while (it != m_AnatomicStructureModifier.end())
-  {
-    result = (*it)->check(quiet);
-    if (result.bad())
-      return result;
-    it++;
-  }
-  return result;
-}
-
-
-
-CodeSequenceMacro& PrimaryAnatomicStructureMacroItem::getAnatomicStructure()
-{
-  return m_AnatomicStructure;
-}
-
-
-OFVector<CodeSequenceMacro*>& PrimaryAnatomicStructureMacroItem::getAnatomicStructureModifier()
-{
-  return m_AnatomicStructureModifier;
-}
 
-
-OFCondition PrimaryAnatomicStructureMacroItem::read(DcmItem& source,
-                                                    const OFBool clearOldData)
-{
-  OFCondition result = EC_Normal;
-
-  /* re-initialize object */
-  if (clearOldData)
-    clearData();
-
-  m_AnatomicStructure.read(source);
-
-  /* check whether cardinality of Primary Anatomic Structure Modifier Sequence and type is ok (produces warnings if not) */
-  DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureModifierSequence, "1-n", "3", "PrimaryAnatomicStructureMacro");
-
-  /* read Primary Anatomic Structure Modifier Sequence */
-  DcmIODUtil::readSubSequence<OFVector<CodeSequenceMacro*> >
-  ( source, /* item of Primary Anatomic Structure Sequence */
-    DCM_PrimaryAnatomicStructureModifierSequence,
-    m_AnatomicStructureModifier,
-    "1-n",
-    "3",
-    "GeneralAnatomyMacro" );
-
-  return result;
-}
-
-
-/// Write Primary Anatomic Structure Sequence Item to given item
-OFCondition PrimaryAnatomicStructureMacroItem::write(DcmItem& source)
-{
-  OFCondition result;
-  m_AnatomicStructure.write(source);
-  DcmIODUtil::writeSubSequence<OFVector<CodeSequenceMacro*> >
-  (
-   result,
-   DCM_PrimaryAnatomicStructureModifierSequence,
-   m_AnatomicStructureModifier,
-   source,
-   "1-n",
-   "3",
-   "PrimaryAnatomicStructureMacro"
-  );
-  return result;
-}
-
-
-// ---------------------- PrimaryAnatomicStructureMacro ----------------------
-
-
-PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro() :
-  m_PrimaryAnatomicStructure()
-{
-
-}
-
-
-PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs)
-{
-  if (this != &rhs)
-  {
-    OFVector<PrimaryAnatomicStructureMacroItem*>::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin();
-    while ( it != rhs.m_PrimaryAnatomicStructure.begin() )
+    for (size_t m = 0; m < m_AnatomicRegionModifier.size(); m++)
     {
-      m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it));
-      it++;
+      rhs.m_AnatomicRegionModifier[m];
+      result = m_AnatomicRegionModifier[m]->compare(  *(rhs.m_AnatomicRegionModifier[m]) );
+      if (result != 0)
+      {
+        return result;
+      }
     }
+    result = m_PrimaryAnatomicStructure.compare(rhs.m_PrimaryAnatomicStructure);
   }
-}
-
-
-PrimaryAnatomicStructureMacro::~PrimaryAnatomicStructureMacro()
-{
-  clearData();
-}
-
-
-void PrimaryAnatomicStructureMacro::clearData()
-{
-  m_PrimaryAnatomicStructure.clear();
-}
-
-
-OFCondition PrimaryAnatomicStructureMacro::check(const OFBool quiet)
-{
-  OFCondition result;
-  OFVector<PrimaryAnatomicStructureMacroItem*>::iterator it = m_PrimaryAnatomicStructure.begin();
-  while (it != m_PrimaryAnatomicStructure.end())
-  {
-    result = (*it)->check(quiet);
-    if (result.bad()) return result;
-    it++;
-  }
-  return result;
-}
-
-
-OFVector<PrimaryAnatomicStructureMacroItem*>& PrimaryAnatomicStructureMacro::getPrimaryAnatomicStructure()
-{
-  return m_PrimaryAnatomicStructure;
-}
-
-
-/// Reads Primary Anatomic Region Sequence from given item
-OFCondition PrimaryAnatomicStructureMacro::read(DcmItem& source,
-                                                const OFBool clearOldData)
-{
-  OFCondition result;
-
-  if (clearOldData)
-    clearData();
-
-  // check for sequence and report warnings if not ok */
-  DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureSequence, "1-n", "3", "PrimaryAnantomicStructureMacro");
-
-  // read sequence into member
-  DcmIODUtil::readSubSequence<OFVector<PrimaryAnatomicStructureMacroItem*> >
-  ( source,
-    DCM_PrimaryAnatomicStructureSequence,
-    m_PrimaryAnatomicStructure,
-    "1-n",
-    "3",
-    "PrimaryAnatomicStructureMacro"
-  );
-  return result;
-}
-
-
-/// Write Anatomic Region Sequence from given item
-OFCondition PrimaryAnatomicStructureMacro::write(DcmItem& item)
-{
-  OFCondition result = EC_Normal;
-
-  /* delete old data */
-  item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence);
-  item.insertEmptyElement(DCM_PrimaryAnatomicStructureSequence);
-
-  DcmIODUtil::writeSubSequence<OFVector<PrimaryAnatomicStructureMacroItem*> >
-  (
-    result,
-    DCM_PrimaryAnatomicStructureSequence,
-    m_PrimaryAnatomicStructure,
-    item,
-    "1-n",
-    "3",
-    "PrimaryAnatomicStructureMacro"
-  );
-
   return result;
 }
 
 
-PrimaryAnatomicStructureMacro& PrimaryAnatomicStructureMacro::operator=(const PrimaryAnatomicStructureMacro& rhs)
-{
-  if (this != &rhs)
-  {
-    clearData();
-    OFVector<PrimaryAnatomicStructureMacroItem*>::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin();
-    while ( it != rhs.m_PrimaryAnatomicStructure.begin() )
-    {
-      m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it));
-      it++;
-    }
-  }
-  return *this;
-}
-
-
 // ---------------------- AlgorithmIdentificationMacro ----------------------
 
 
index 43686747349facb80320c98bb4594be2beaa4a93..d106ba2c5ad96cb6699d93fa96ba4de60af915f2 100644 (file)
 #include "dcmtk/dcmdata/dcdeftag.h"
 
 
+IODComponent::IODComponent(const IODComponent& rhs)
+: m_Item(OFstatic_cast(DcmItem*, rhs.m_Item->clone()))
+, m_Rules(rhs.m_Rules->clone())
+, m_Parent(OFnullptr)
+{
+
+}
+
+
 IODComponent::IODComponent(OFshared_ptr<DcmItem> item,
                            OFshared_ptr<IODRules> rules,
                            IODComponent* parent)
@@ -62,24 +71,14 @@ IODComponent& IODComponent::operator=(const IODComponent& rhs)
 {
   if (&rhs != this)
   {
-    m_Rules.reset( rhs.m_Rules->clone() );
-    m_Item.reset( OFstatic_cast(DcmItem*, rhs.m_Item->clone()) );
-    m_Parent = NULL;
+    m_Item.reset(OFstatic_cast(DcmItem*, rhs.m_Item->clone()));
+    m_Rules.reset(rhs.m_Rules->clone());
+    m_Parent = OFnullptr;
   }
   return *this;
 }
 
 
-IODComponent::IODComponent(const IODComponent& rhs)
-{
-
-  if (this == &rhs)
-    return;
-
-  *this = rhs;
-}
-
-
 void IODComponent::inventMissing()
 {
   // Try to fill in missing type 1 information
@@ -212,8 +211,8 @@ OFCondition IODComponent::read(DcmItem& source,
     if (isSequence)
     {
       DcmElement *elem = NULL;
-      source.findAndGetElement( (*rule)->getTagKey(), elem);
-      DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), EC_Normal, (*rule)->getModule().c_str());
+      OFCondition cond = source.findAndGetElement( (*rule)->getTagKey(), elem);
+      DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), cond, (*rule)->getModule().c_str());
     }
     else // Normal attributes are checked and copied over into this IOD component
     {
@@ -265,9 +264,28 @@ IODModule::IODModule(): IODComponent()
 }
 
 
+IODModule::IODModule(const IODModule& rhs)
+: IODComponent(rhs.m_Item, rhs.m_Rules, rhs.m_Parent)
+{
+
+}
+
+
 IODModule::IODModule(OFshared_ptr< DcmItem > item,
   OFshared_ptr< IODRules > rules)
 : IODComponent(item, rules, NULL /* No parent for modules */)
 {
   // nothing to do, IODComponent does the work
 }
+
+
+IODModule& IODModule::operator=(const IODModule& rhs)
+{
+  if (this != &rhs)
+  {
+    m_Item = rhs.m_Item;
+    m_Rules = rhs.m_Rules;
+    m_Parent = rhs.m_Parent;
+  }
+  return *this;
+}
index 921e9fb35a74f9ad94d000860f2c097876c5020e..246b15ecec65bdfa50f0cb95a8d079e919149213 100644 (file)
@@ -45,7 +45,7 @@ IODCommonInstanceReferenceModule::IODCommonInstanceReferenceModule()
 
 IODCommonInstanceReferenceModule::~IODCommonInstanceReferenceModule()
 {
-  clearData();
+  freeMemory();
 }
 
 
@@ -69,12 +69,10 @@ OFVector<IODCommonInstanceReferenceModule::StudiesOtherInstancesItem *> & IODCom
 
 void IODCommonInstanceReferenceModule::clearData()
 {
-  DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence);
-  DcmIODUtil::freeContainer(m_ReferenceSeriesItems);
+  freeMemory();
 }
 
 
-
 OFCondition IODCommonInstanceReferenceModule::read(DcmItem& source,
                                                    const OFBool clearOldData)
 {
@@ -204,7 +202,6 @@ void IODCommonInstanceReferenceModule::resetRules()
 }
 
 
-
 OFCondition IODCommonInstanceReferenceModule::addSeriesReference(
   OFVector<IODSeriesAndInstanceReferenceMacro::ReferencedSeriesItem*>& container,
   const IODReference& ref)
@@ -348,3 +345,10 @@ OFCondition IODCommonInstanceReferenceModule::StudiesOtherInstancesItem::setStud
     result = m_Item->putAndInsertOFStringArray(DCM_StudyInstanceUID, value);
   return result;
 }
+
+
+void IODCommonInstanceReferenceModule::freeMemory()
+{
+  DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence);
+  DcmIODUtil::freeContainer(m_ReferenceSeriesItems);
+}
\ No newline at end of file
index 6801c84a79792639128e2a19d46bc5fd4b03b49e..dcd71f4c24c67a4a8836f837fd18558eb06ac068 100644 (file)
@@ -58,16 +58,16 @@ OFCondition IODEnhGeneralEquipmentModule::create(const IODEnhGeneralEquipmentMod
 
 void IODEnhGeneralEquipmentModule::resetRules()
 {
-  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
 }
 
 
 IODEnhGeneralEquipmentModule::~IODEnhGeneralEquipmentModule()
 {
-  clearData();
+  // Nothing to do
 }
 
 
index 0d2abeb47702960221cde4e98fb0deb92ee893ee..ade432db2b975cb38e13c24772762cf44d2decbd 100644 (file)
@@ -48,20 +48,19 @@ void IODGeneralEquipmentModule::resetRules()
 {
 
   // parameters are tag, VM, type. Overwrite old rules if any.
-  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_InstitutionName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_StationName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "2", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_InstitutionName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_StationName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
 }
 
 
 IODGeneralEquipmentModule::~IODGeneralEquipmentModule()
 {
-  clearData();
 }
 
 
diff --git a/dcmiod/libsrc/modfloatingpointimagepixel.cc b/dcmiod/libsrc/modfloatingpointimagepixel.cc
new file mode 100644 (file)
index 0000000..d5e1494
--- /dev/null
@@ -0,0 +1,260 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Floating Point and Double Floating Point Image Pixel Module
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+#include "dcmtk/dcmiod/modfloatingpointimagepixel.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrfl.h"
+#include "dcmtk/dcmdata/dcvrfd.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+const OFString IODFloatingPointImagePixelModule::m_ModuleName = "FloatingPointImagePixelModule";
+const DcmTagKey IODFloatingPointImagePixelModule::pixel_data_tag = DCM_FloatPixelData;
+const DcmTagKey IODDoubleFloatingPointImagePixelModule::pixel_data_tag = DCM_DoubleFloatPixelData;
+
+
+IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                                                   OFshared_ptr<IODRules> rules)
+: IODImagePixelBase(item, rules)
+{
+  // reset element rules
+  resetRules();
+  getData().putAndInsertUint16(DCM_BitsAllocated, 32);
+  getData().putAndInsertUint16(DCM_SamplesPerPixel, 1);
+  getData().putAndInsertUint16(DCM_PixelRepresentation, 1);
+  getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+}
+
+
+OFString IODFloatingPointImagePixelModule::getName() const
+{
+  return m_ModuleName;
+}
+
+
+IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule()
+: IODImagePixelBase()
+{
+  resetRules();
+}
+
+
+IODFloatingPointImagePixelModule::~IODFloatingPointImagePixelModule()
+{
+  // nothing to do
+}
+
+
+void IODFloatingPointImagePixelModule::resetRules()
+{
+  // Parameters this module is responsible for.
+  m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::read(DcmItem& source,
+                                                  const OFBool clearOldData)
+{
+  // Read common attributes
+  IODImagePixelBase::read(source, clearOldData);
+  // Read extra attributes of Floating Point Image Pixel Module
+  IODModule::read(source, clearOldData);
+  return EC_Normal;
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::write(DcmItem& destination)
+{
+  // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module
+  OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+  // Write common attributes
+  if (result.good())
+  {
+    result = IODImagePixelBase::write(destination);
+  }
+  // Write extra attributes of Floating Poing Image Pixel Module
+  if (result.good())
+  {
+    result = IODModule::write(destination);
+  }
+  return result;
+}
+
+
+IODImagePixelBase::DataType IODFloatingPointImagePixelModule::getDataType() const
+{
+  return IODImagePixelBase::DATA_TYPE_FLOAT;
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingValue(Float32& value,
+                                                                        const long pos)
+{
+  return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingValue, value, pos);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingRangeLimit(Float32& value,
+                                                                             const long pos)
+{
+  return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingRangeLimit, value, pos);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingValue(const Float32 value,
+                                                                        const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingValue, value);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingRangeLimit(const Float32 value,
+                                                                             const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingRangeLimit, value);
+}
+
+// ---------------- Double Floating Point Image Pixel Module ------------------
+
+const OFString IODDoubleFloatingPointImagePixelModule::m_ModuleName = "DoubleFloatingPointImagePixelModule";
+
+
+IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                                                               OFshared_ptr<IODRules> rules)
+: IODImagePixelBase(item, rules)
+{
+  // reset element rules
+  resetRules();
+
+  getData().putAndInsertUint16(DCM_BitsAllocated, 64);
+  getData().putAndInsertUint16(DCM_SamplesPerPixel, 1);
+  getData().putAndInsertUint16(DCM_PixelRepresentation, 1);
+  getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+}
+
+
+OFString IODDoubleFloatingPointImagePixelModule::getName() const
+{
+  return m_ModuleName;
+}
+
+
+IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule()
+: IODImagePixelBase()
+{
+  resetRules();
+}
+
+
+IODDoubleFloatingPointImagePixelModule::~IODDoubleFloatingPointImagePixelModule()
+{
+  // nothing to do
+}
+
+
+void IODDoubleFloatingPointImagePixelModule::resetRules()
+{
+  // Parameters are tag, VM, type. Overwrite old rules if any.
+  // Take over responsibility for Photometric Interpretation since we want to write
+  // "MONOCHROME2" as a fixed value.
+  m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE, "MONOCHROME2"), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::read(DcmItem& source,
+                                                         const OFBool clearOldData)
+{
+  // Read common attributes
+  IODImagePixelBase::read(source, clearOldData);
+  // Read extra attributes of Floating Point Image Pixel Module
+  IODModule::read(source, clearOldData);
+  return EC_Normal;
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::write(DcmItem& destination)
+{
+  // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module
+  OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+  // Write common attributes
+  if (result.good())
+  {
+    result = IODImagePixelBase::write(destination);
+  }
+  // Write extra attributes of Floating Poing Image Pixel Module
+  if (result.good())
+  {
+    result = IODModule::write(destination);
+  }
+  return result;
+}
+
+
+IODImagePixelBase::DataType IODDoubleFloatingPointImagePixelModule::getDataType() const
+{
+  return IODImagePixelBase::DATA_TYPE_DOUBLE;
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingValue(Float64& value,
+                                                                                    const long pos)
+{
+  return m_Item->findAndGetFloat64(DCM_FloatPixelPaddingValue, value, pos);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingRangeLimit(Float64& value,
+                                                                                         const long pos)
+{
+  return m_Item->findAndGetFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value, pos);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingValue(const Float64 value,
+                                                                                    const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingValue, value);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingRangeLimit(const Float64 value,
+                                                                                         const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value);
+}
index 3ca984d6762caffe80cbac9ce07cb7d22dde671d..3e331666f368ad262a596259f8b8824d99db4f2b 100644 (file)
@@ -61,8 +61,7 @@ OFString IODFoRModule::getName() const
 
 IODFoRModule::~IODFoRModule()
 {
-  // clear rules from rule set
-  clearData();
+  // Nothing to do
 }
 
 
@@ -80,7 +79,6 @@ OFCondition IODFoRModule::getPositionReferenceIndicator(OFString& value,
 }
 
 
-
 OFCondition IODFoRModule::setFrameOfReferenceUID(const OFString &value,
                                                  const OFBool checkValue)
 {
@@ -100,3 +98,22 @@ OFCondition IODFoRModule::setPositionReferenceIndicator(const OFString &value,
   return result;
 }
 
+
+void IODFoRModule::ensureFrameOfReferenceUID(const OFBool correctInvalid)
+{
+  OFString uidstr;
+
+  // Create new Frame of Reference instance UID if required
+  if (getFrameOfReferenceUID(uidstr).bad() || uidstr.empty() )
+  {
+    setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */));
+  }
+  else if (!uidstr.empty() && correctInvalid)
+  {
+    if (DcmUniqueIdentifier::checkStringValue(uidstr, "1").bad())
+    {
+      setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */));
+    }
+  }
+}
+
index c2a8c583107b81e41013050cc6e5cb656b09041b..6343c5d672cd4453c9549e6bc2fb28147931e13e 100644 (file)
 #include "dcmtk/dcmdata/dcvris.h"
 #include "dcmtk/dcmiod/iodutil.h"
 
-const OFString IODImagePixelModule::m_ModuleName = "ImagePixelModule";
-
-
-IODImagePixelModule::IODImagePixelModule(OFshared_ptr<DcmItem> item,
-                                         OFshared_ptr<IODRules> rules)
-: IODModule(item, rules)
+template<typename T>
+const OFString IODImagePixelModule<T>::m_ModuleName = "ImagePixelModule";
+template<typename T>
+const DcmTagKey IODImagePixelModule<T>::pixel_data_tag = DCM_PixelData;
+
+template<typename T>
+IODImagePixelModule<T>::IODImagePixelModule(OFshared_ptr<DcmItem> item,
+                                            OFshared_ptr<IODRules> rules)
+: IODImagePixelBase(item, rules)
 {
   // reset element rules
   resetRules();
 }
 
-
-OFString IODImagePixelModule::getName() const
+template<typename T>
+OFString IODImagePixelModule<T>::getName() const
 {
   return m_ModuleName;
 }
 
-
-IODImagePixelModule::IODImagePixelModule()
-: IODModule()
+template<typename T>
+IODImagePixelModule<T>::IODImagePixelModule()
+: IODImagePixelBase()
 {
   resetRules();
 }
 
+template<typename T>
+IODImagePixelModule<T>::~IODImagePixelModule()
+{
+}
 
-void IODImagePixelModule::resetRules()
+template<typename T>
+void IODImagePixelModule<T>::resetRules()
 {
   // parameters are tag, VM, type. Overwrite old rules if any.
   m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1n", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_BitsStored, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_HighBit, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
@@ -68,83 +76,66 @@ void IODImagePixelModule::resetRules()
   m_Rules->addRule(new IODRule(DCM_ICCProfile, "1", "3", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
 }
 
-
-IODImagePixelModule::~IODImagePixelModule()
+template<typename T>
+OFCondition IODImagePixelModule<T>::read(DcmItem& source,
+                                         const OFBool clearOldData)
 {
+  // Read common attributes
+  IODImagePixelBase::read(source, clearOldData);
+  // Read extra attributes of Image Pixel Module
+  IODModule::read(source, clearOldData);
+  return EC_Normal;
 }
 
-
-OFCondition IODImagePixelModule::getSamplesPerPixel(Uint16 &value,
-                                         const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::write(DcmItem& destination)
 {
-  return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getPhotometricInterpretation(OFString&value,
-                                                      const signed long pos)
-{
-  return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getRows(Uint16& value,
-                                 const signed long pos)
-{
-  return m_Item->findAndGetUint16(DCM_Rows, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getColumns(Uint16& value,
-                                    const signed long pos)
-{
-  return m_Item->findAndGetUint16(DCM_Columns, value, pos);
+  // Write common attributes
+  OFCondition result = IODImagePixelBase::write(destination);
+  // Write extra attributes of Image Pixel Module
+  if (result.good())
+  {
+    IODModule::write(destination);
+  }
+  return result;
 }
 
-
-OFCondition IODImagePixelModule::getBitsAllocated(Uint16& value,
-                                          const signed long pos)
+template<typename T>
+IODImagePixelBase::DataType IODImagePixelModule<T>::getDataType() const
 {
-  return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos);
+  return IODImagePixelBase::DATA_TYPE_INTEGER;
 }
 
-
-OFCondition IODImagePixelModule::getBitsStored(Uint16& value,
-                                       const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getBitsStored(Uint16& value,
+                                                  const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_BitsStored, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getHighBit(Uint16& value,
-                                    const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getHighBit(Uint16& value,
+                                            const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_HighBit, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getPixelRepresentation(Uint16& value,
-                                                  const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getPixelRepresentation(Uint16& value,
+                                                        const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_PixelRepresentation, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getPlanarConfiguration(Uint16& value,
-                                                const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getPlanarConfiguration(Uint16& value,
+                                                         const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_PlanarConfiguration, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getPixelAspectRatio(Uint16& value,
-                                            const signed long pos)
-{
-  return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getICCProfile(OFVector<Uint8>& values)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getICCProfile(OFVector<Uint8>& values)
 {
   DcmElement* elem = NULL;
   OFCondition result = m_Item->findAndGetElement(DCM_ICCProfile, elem);
@@ -160,8 +151,8 @@ OFCondition IODImagePixelModule::getICCProfile(OFVector<Uint8>& values)
     return EC_TagNotFound;
 }
 
-
-OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setSamplesPerPixel(const Uint16 value,
                                                     const OFBool checkValue)
 {
   OFCondition result = EC_Normal;
@@ -183,12 +174,11 @@ OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value,
   if (result.good() )
     result = m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value);
 
-  // TODO: Check consistency with photometric interpretation
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setPhotometricInterpretation(const OFString& value,
                                                               const OFBool checkValue)
 {
   OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -197,48 +187,32 @@ OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& va
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setRows(const Uint16 value,
-                                         const OFBool checkValue)
-{
-  (void)checkValue;
-  return m_Item->putAndInsertUint16(DCM_Rows, value);
-}
-
-
-OFCondition IODImagePixelModule::setColumns(const Uint16 value,
-                                            const OFBool checkValue)
-{
-  (void)checkValue;
-  return m_Item->putAndInsertUint16(DCM_Columns, value);
-}
-
-
-OFCondition IODImagePixelModule::setBitsAllocated(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setBitsAllocated(const Uint16 value,
                                                   const OFBool checkValue)
 {
   (void)checkValue;
   return m_Item->putAndInsertUint16(DCM_BitsAllocated, value);
 }
 
-
-OFCondition IODImagePixelModule::setBitsStored(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setBitsStored(const Uint16 value,
                                                const OFBool checkValue)
 {
   (void)checkValue;
   return m_Item->putAndInsertUint16(DCM_BitsStored, value);
 }
 
-
-OFCondition IODImagePixelModule::setHighBit(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setHighBit(const Uint16 value,
                                             const OFBool checkValue)
 {
   (void)checkValue;
   return m_Item->putAndInsertUint16(DCM_HighBit, value);
 }
 
-
-OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setPixelRepresentation(const Uint16 value,
                                                         const OFBool checkValue)
 {
   OFCondition result = EC_Normal;
@@ -257,8 +231,8 @@ OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value,
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setPlanarConfiguration(const Uint16 value,
                                                         const OFBool checkValue)
 {
   OFCondition result = EC_Normal;
@@ -277,26 +251,14 @@ OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value,
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setPixelAspectRatio(const OFString& verticalPixelSize,
-                                                     const OFString& horizontalPixelSize,
-                                                     const OFBool checkValue)
-{
-  OFString concat = verticalPixelSize;
-  concat += "\\"; concat += horizontalPixelSize;
-  OFCondition cond;
-  if (checkValue)
-  {
-    cond = DcmIntegerString::checkStringValue(concat, "2");
-    // check for unsignedness, too?
-  }
-  if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat);
-  return cond;
-}
-
-
-OFCondition IODImagePixelModule::setICCProfile(const Uint8* values,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setICCProfile(const Uint8* values,
                                                const size_t length)
 {
   return m_Item->putAndInsertUint8Array(DCM_ICCProfile, values, length);
 }
+
+template class IODImagePixelModule<Uint8>;
+template class IODImagePixelModule<Sint8>;
+template class IODImagePixelModule<Uint16>;
+template class IODImagePixelModule<Sint16>;
diff --git a/dcmiod/libsrc/modimagepixelbase.cc b/dcmiod/libsrc/modimagepixelbase.cc
new file mode 100644 (file)
index 0000000..f35725e
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point)
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrobow.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvris.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+const OFString IODImagePixelBase::m_ModuleName = "ImagePixelBase";
+
+
+IODImagePixelBase::IODImagePixelBase(OFshared_ptr<DcmItem> item,
+                                     OFshared_ptr<IODRules> rules)
+: IODModule(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+OFString IODImagePixelBase::getName() const
+{
+  return m_ModuleName;
+}
+
+
+IODImagePixelBase::IODImagePixelBase()
+: IODModule()
+{
+  resetRules();
+}
+
+
+IODImagePixelBase::~IODImagePixelBase()
+{
+}
+
+
+void IODImagePixelBase::resetRules()
+{
+  // all rules in sub classes
+}
+
+
+OFCondition IODImagePixelBase::getSamplesPerPixel(Uint16 &value,
+                                         const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getPhotometricInterpretation(OFString&value,
+                                                      const signed long pos)
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getRows(Uint16& value,
+                                 const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_Rows, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getColumns(Uint16& value,
+                                    const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_Columns, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getBitsAllocated(Uint16& value,
+                                          const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getPixelAspectRatio(Uint16& value,
+                                            const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::setRows(const Uint16 value,
+                                         const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint16(DCM_Rows, value);
+}
+
+
+OFCondition IODImagePixelBase::setColumns(const Uint16 value,
+                                            const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint16(DCM_Columns, value);
+}
+
+
+OFCondition IODImagePixelBase::setPixelAspectRatio(const OFString& verticalPixelSize,
+                                                     const OFString& horizontalPixelSize,
+                                                     const OFBool checkValue)
+{
+  OFString concat = verticalPixelSize;
+  concat += "\\"; concat += horizontalPixelSize;
+  OFCondition cond;
+  if (checkValue)
+  {
+    cond = DcmIntegerString::checkStringValue(concat, "2");
+    // check for unsignedness, too?
+  }
+  if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat);
+  return cond;
+}
index 199dfa4a8ae67fc02ff927fcc2d313527a96ed17..e6862a401e28735f325eecd47e12110b4c37e43d 100644 (file)
@@ -70,23 +70,48 @@ OFCondition IODMultiframeDimensionModule::addDimensionIndex(const DcmTagKey& dim
     return IOD_EC_MissingAttribute;
   }
 
+  // Add Dimension Organization by its UID if such organization does not exist yet
+  OFVector<DimensionOrganizationItem*>::iterator it = m_DimensionOrganizationSequence.begin();
+  while (it != m_DimensionOrganizationSequence.end())
+  {
+    OFString val;
+    (*it)->getDimensionOrganizationUID(val);
+    if (val == dimensionOrganizationUID)
+    {
+      break;
+    }
+    it++;
+  }
+  OFCondition result;
+  if (it == m_DimensionOrganizationSequence.end())
+  {
+    DimensionOrganizationItem* item = new DimensionOrganizationItem;
+    if (item == NULL)
+    {
+      return EC_MemoryExhausted;
+    }
+    result = item->setDimensionOrganizationUID(dimensionOrganizationUID);
+    if (result.bad())
+      return result;
+    m_DimensionOrganizationSequence.push_back(item);
+  }
+
+  // Create dimension and add it to this object
   DimensionIndexItem* dim = new DimensionIndexItem();
   if (!dim)
     return EC_MemoryExhausted;
 
-  OFCondition result = dim->setDimensionOrganizationUID(dimensionOrganizationUID);
+  result = dim->setDimensionOrganizationUID(dimensionOrganizationUID);
   if (result.good()) result = dim->setFunctionalGroupPointer(functionalGroupPointer);
   if (result.good()) result = dim->setDimensionIndexPointer(dimensionIndexPointer);
   if (result.good() && !dimensionIndexPrivateCreator.empty()) dim->setDimensionIndexPrivateCreator(dimensionIndexPrivateCreator);
   if (result.good() && !functionalGroupPrivateCreator.empty()) dim->setFunctionalGroupPrivateCreator(functionalGroupPrivateCreator);
   if (result.good() && !dimensionDescriptionLabel.empty()) dim->setDimensionDescriptionLabel(dimensionDescriptionLabel);
-
   if (result.bad())
   {
     DCMIOD_ERROR("Could not add Dimension Index: Invalid data values");
     delete dim;
   }
-
   m_DimensionIndexSequence.push_back(dim);
 
   return result;
index 6f324e95411a5580a0c44d7171013438e426226d..4b256baa34ad1d67aaa0d0b28d702e3e29fee6e3 100644 (file)
@@ -115,7 +115,6 @@ OFCondition IODMultiFrameFGModule::getRepresentativeFrameNumber(Uint16& value,
 
 OFCondition IODMultiFrameFGModule::setConcatenationInfo(const IODMultiFrameFGModule::ConcatenationInfo& concatenationInfo)
 {
-  // TODO: Checks?
   m_ConcatenationInfo = concatenationInfo;
   return EC_Normal;
 }
@@ -131,7 +130,6 @@ OFCondition IODMultiFrameFGModule::setInstanceNumber(const OFString& value,
 }
 
 
-
 OFCondition IODMultiFrameFGModule::setContentDate(const OFString& value,
                                                   const OFBool checkValue)
 {
index 3aceba7ebb8489e20dee0a32969756a564f9862b..4d496e3b99541cc941ed9c48a03e4e270fecd3d0 100644 (file)
@@ -72,8 +72,6 @@ OFString IODSynchronizationModule::getName() const
 
 IODSynchronizationModule::~IODSynchronizationModule()
 {
-  // clear rules from rule set
-  clearData();
 }
 
 
@@ -152,11 +150,12 @@ OFCondition IODSynchronizationModule::setSynchronizationFrameofReferenceUID(cons
 OFCondition IODSynchronizationModule::setSynchronizationTrigger(const OFString &value,
                                                                 const OFBool checkValue)
 {
-  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-  if (result.good())
-    result = m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value);
-  // TODO: Further checks since this field has enumerated values
-  return result;
+  if (checkValue && !isValidSynchronizationTrigger(value))
+  {
+    DCMIOD_ERROR("Synchronization Trigger does not allow value " << value << " (enumerated values)");
+    return IOD_EC_InvalidElementValue;
+  }
+  return m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value);
 }
 
 
@@ -186,11 +185,12 @@ OFCondition IODSynchronizationModule::setSynchronizationChannel(const OFPair<Uin
 OFCondition IODSynchronizationModule::setAcquisitionTimeSynchronized(const OFString &value,
                                                                      const OFBool checkValue)
 {
-  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-  if (result.good())
-    result = m_Item->putAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value);
-  // TODO: Further checks since this field has enumerated values
-  return result;
+  if (checkValue && !isValidAcquisitionTimeSynchronized(value))
+  {
+    DCMIOD_ERROR("Acquisition Time Synchronized must only allows values 'Y' and 'N' (enumerated values)");
+    return IOD_EC_InvalidElementValue;
+  }
+  return m_Item->putAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value);
 }
 
 
@@ -207,14 +207,16 @@ OFCondition IODSynchronizationModule::setTimeSource(const OFString &value,
 OFCondition IODSynchronizationModule::setTimeDistributionProtocol(const OFString &value,
                                                                   const OFBool checkValue)
 {
-  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-  if (result.good())
-    result = m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value);
-  // TODO: Further checks since this field has enumerated values
-  return result;
+  if (checkValue && !isValidTimeDistributionProtocol(value))
+  {
+    DCMIOD_ERROR("Time Distribution Protocol does not allow value " << value << " (enumerated values)");
+    return IOD_EC_InvalidElementValue;
+  }
+  return m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value);
 }
 
 
+
 OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value,
                                                           const OFBool checkValue)
 {
@@ -223,3 +225,24 @@ OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value,
     result = m_Item->putAndInsertOFStringArray(DCM_NTPSourceAddress, value);
   return result;
 }
+
+
+
+OFBool IODSynchronizationModule::isValidAcquisitionTimeSynchronized(const OFString& value)
+{
+  return ( (value == "Y") || (value == "N") );
+
+}
+
+
+OFBool IODSynchronizationModule::isValidTimeDistributionProtocol(const OFString& value)
+{
+  return ( (value == "NTP") || (value == "IRIG") || (value == "GPS") || (value == "SNTP") || (value == "PTP") );
+}
+
+
+OFBool IODSynchronizationModule::isValidSynchronizationTrigger(const OFString& value)
+{
+  return ( (value == "SOURCE") || (value == "EXTERNAL") || (value == "PASSTHRU") || (value == "NO TRIGGER") );
+}
+
index 231cb610fbd9aa154772ce479e9ed5a2a9480487..8c570cfd13e8da9e3fd6bf94c1316eccc345c64c 100644 (file)
@@ -70,8 +70,7 @@ OFString IODUSFoRModule::getName() const
 
 IODUSFoRModule::~IODUSFoRModule()
 {
-  // clear rules from rule set
-  clearData();
+  // Nothing to do
 }
 
 
index 3a04022e9603c3593ae8cee5a61899d87fb82e1a..1ebae734342579536a3ccd089f2364e2758f03d8 100644 (file)
@@ -1,5 +1,5 @@
 # declare executables
-DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil)
+DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil timagepixel)
 
 # make sure executables are linked to the corresponding libraries
 DCMTK_TARGET_LINK_MODULES(dcmiod_tests dcmiod dcmdata oflog ofstd)
index 7ef8406f8bac5ec1aae0d7ae25a00616ca1f2e1e..3cdb9905f58679141c02a0d6fa82156dcda27ea7 100644 (file)
@@ -88,3 +88,143 @@ tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/logmacro.h \
  ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h
+timagepixel.o: timagepixel.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../include/dcmtk/dcmiod/iodcommn.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/ioddef.h \
+ ../include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmiod/modpatient.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmiod/modbase.h \
+ ../include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../include/dcmtk/dcmiod/iodmacro.h \
+ ../include/dcmtk/dcmiod/modequipment.h \
+ ../include/dcmtk/dcmiod/modgeneralseries.h \
+ ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \
+ ../include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../include/dcmtk/dcmiod/iodreferences.h \
+ ../include/dcmtk/dcmiod/modgeneralimage.h \
+ ../include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../include/dcmtk/dcmiod/modimagepixel.h \
+ ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h
index 9aab2c895ac18af927dd923993045c01c87e50ae..aa20c71e7c3e1e7840010e81983ff14ff4a0b95c 100644 (file)
@@ -23,7 +23,7 @@ LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmioddir)/libsrc -L$(dcmdatadir)/libsrc \
 LOCALLIBS = -ldcmiod -ldcmdata -loflog -lofstd \
        $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS)
 
-test_objs = tests.o tcielabutil.o
+test_objs = tests.o tcielabutil.o timagepixel.o
 objs = tests.o $(test_objs)
 progs = tests
 
index 3f583bfab808496a8b014a8a18436b84f0b2f342..c1528a9c24dfeb1b71ee1c1e81a4e3d16ac47e64 100644 (file)
@@ -23,4 +23,5 @@
 #include "dcmtk/ofstd/oftest.h"
 
 OFTEST_REGISTER(dcmiod_tcielabutil);
+OFTEST_REGISTER(dcmiod_imagepixel);
 OFTEST_MAIN("dcmiod")
diff --git a/dcmiod/tests/timagepixel.cc b/dcmiod/tests/timagepixel.cc
new file mode 100644 (file)
index 0000000..2c4ed75
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ *
+ *  Copyright (C) 2016, OFFIS e.V.
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation were developed by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmiod
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Tests for dcmiod's color conversion functionalities
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftest.h"
+#include "dcmtk/dcmiod/iodimage.h"
+#include "dcmtk/dcmiod/modimagepixel.h"
+#include "dcmtk/dcmiod/modfloatingpointimagepixel.h"
+
+OFTEST(dcmiod_imagepixel)
+{
+  DcmIODImage<IODImagePixelModule<Uint8>,IODFloatingPointImagePixelModule> image1;
+  DcmIODImage<IODImagePixelModule<Uint8>,IODImagePixelModule<Uint8>,IODDoubleFloatingPointImagePixelModule> image2( OFin_place<IODImagePixelModule<Uint8> > );
+}
index 8935e3f04d5086cb82d5cb13adac22b0f8b48dd8..7bd35ef1db4414f6ba18b4970d320ad4638b2aaf 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2003-2014, OFFIS e.V.
+ *  Copyright (C) 2003-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -79,7 +79,7 @@ OFBool DicomDirImageImplementation::scaleImage(DcmItem *dataset,
     /* check parameters (at least the pointers) */
     if ((dataset != NULL) && (pixel != NULL) && (frame > 0))
     {
-        size_t flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays;
+        unsigned long flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays;
         if (decompressAll)
             flags |= CIF_DecompressCompletePixelData;
         /* open referenced image */
index 43461aae913e4b937ce162efe29a856751c7ca47..d3d2d0cf9dad7a54cba4b390cce0fb634615abff 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2001-2015, OFFIS e.V.
+ *  Copyright (C) 2001-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -515,7 +515,7 @@ OFCondition DJCodecEncoder::encodeTrueLossless(
     }
 
     /* Set and check photometric interpretation (up to now: EPI_RGB)
-     * Only photometric interpretations, that are explicetly "supported" by the
+     * Only photometric interpretations, that are explicitly "supported" by the
      * IJG lib are set. For all others "unknown" is set. Some are even rejected here.
      */
     if (photometricInterpretation == "MONOCHROME1")
@@ -929,7 +929,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage(
   if (result.good()) result = adjustOverlays(dataset, dimage);
 
   // VOI transformations should only be applied on the dataset level, not
-  // in nested items such as the Icon Image Sequence where we don't exect
+  // in nested items such as the Icon Image Sequence where we don't expect
   // a VOI window or LUT to be present
   size_t windowType = 0;
   if (dataset->ident() == EVR_dataset)
@@ -958,7 +958,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage(
           if (classUID && ! cp->getConvertToSC())
           {
             // these three SOP classes use the X-Ray Image Module in which the meaning
-            // of the Modality LUT transformation is "inversersed" and, therefore,
+            // of the Modality LUT transformation is "inversed" and, therefore,
             // needs special handling.  This is not an issue if we're converting to
             // secondary capture anyway.
             if ((0 == strcmp(classUID, UID_XRayAngiographicImageStorage)) ||
@@ -1415,7 +1415,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration8(
   const Uint16 samplesPerPixel,
   const Uint16 oldPlanarConfig)
 {
-  if ( (pixelData == NULL) )
+  if (pixelData == NULL)
     return EC_IllegalParameter;
   // allocate target buffer
   Uint8* px8 = new Uint8[numValues];
@@ -1451,7 +1451,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration16(
   const Uint16 samplesPerPixel,
   const Uint16 oldPlanarConfig)
 {
-  if ( (pixelData == NULL) )
+  if (pixelData == NULL)
     return EC_IllegalParameter;
   // allocate target buffer
   Uint16* px16 = new Uint16[numValues];
index 772af6fc41180f0a1f5477c33b0f66486eeb09b8..d892c5efdf1e73547e490ef24b41180b13759696 100644 (file)
@@ -19,10 +19,13 @@ class DecoderStrategy
 public:
        DecoderStrategy(const JlsParameters& info) :
                  _info(info),
-             _processLine(0),
+                 _processLine(0),
                  _readCache(0),
                  _validBits(0),
-                 _position(0)
+                 _position(0),
+                 _size(0),
+                 _current_offset(0),
+                 _nextFFPosition(0)
          {
          }
 
@@ -31,14 +34,15 @@ public:
          }
 
          virtual void SetPresets(const JlsCustomParameters& presets) = 0;
-         virtual size_t DecodeScan(void* outputData, const JlsRect& size, const void* compressedData, size_t byteCount, bool bCheck) = 0;
+         virtual size_t DecodeScan(void* outputData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCheck) = 0;
 
-         void Init(BYTE* compressedBytes, size_t byteCount)
+         void Init(BYTE **ptr, size_t *size, size_t offset)
          {
                  _validBits = 0;
                  _readCache = 0;
-                 _position = compressedBytes;
-                 _endPosition = compressedBytes + byteCount;
+                 _position = ptr;
+                 _size = size;
+                 _current_offset = offset;
                  _nextFFPosition = FindNextFF();
                  MakeValid();
          }
@@ -61,11 +65,11 @@ public:
 
          void EndScan()
          {
-                 if ((*_position) != 0xFF)
+                 if (current_value() != 0xFF)
                  {
                          ReadBit();
 
-                         if ((*_position) != 0xFF)
+                         if (current_value() != 0xFF)
                                throw JlsException(TooMuchCompressedData);
                  }
 
@@ -77,11 +81,11 @@ public:
          inlinehint bool OptimizedRead()
          {
                  // Easy & fast: if there is no 0xFF byte in sight, we can read without bitstuffing
-                 if (_position < _nextFFPosition - (sizeof(bufType)-1))
+                 if (_current_offset < _nextFFPosition - (sizeof(bufType)-1))
                  {
-                         _readCache             |= FromBigEndian<sizeof(bufType)>::Read(_position) >> _validBits;
+                         _readCache             |= FromBigEndian<sizeof(bufType)>::Read(*_position + _current_offset) >> _validBits;
                          int bytesToRead = (bufferbits - _validBits) >> 3;
-                         _position += bytesToRead;
+                         _current_offset += bytesToRead;
                          _validBits += bytesToRead * 8;
                          ASSERT(_validBits >= bufferbits - 8);
                          return true;
@@ -104,7 +108,7 @@ public:
 
                  do
                  {
-                         if (_position >= _endPosition)
+                         if (_current_offset >= *_size)
                          {
                                  if (_validBits <= 0)
                                          throw JlsException(InvalidCompressedData);
@@ -112,12 +116,12 @@ public:
                                  return;
                          }
 
-                         bufType valnew          = _position[0];
+                         bufType valnew          = current_value();
                          
                          if (valnew == 0xFF)           
                          {
                                  // JPEG bitstream rule: no FF may be followed by 0x80 or higher                                
-                                if (_position == _endPosition - 1 || (_position[1] & 0x80) != 0)
+                                if (_current_offset == *_size - 1 || ((*_position)[_current_offset + 1] & 0x80) != 0)
                                 {
                                         if (_validBits <= 0)
                                                throw JlsException(InvalidCompressedData);
@@ -127,7 +131,7 @@ public:
                          }
 
                          _readCache             |= valnew << (bufferbits - 8  - _validBits);
-                         _position   += 1;                             
+                         _current_offset   += 1;
                          _validBits             += 8; 
 
                          if (valnew == 0xFF)           
@@ -143,39 +147,39 @@ public:
          }
 
 
-         BYTE* FindNextFF()
+         size_t FindNextFF()
          {
-                 BYTE* pbyteNextFF = _position;
+                 size_t off = _current_offset;
 
-                 while (pbyteNextFF < _endPosition)
+                 while (off < *_size)
              {
-                         if (*pbyteNextFF == 0xFF) 
+                         if ((*_position)[off] == 0xFF)
                          {                               
                                  break;
                          }
-                 pbyteNextFF++;
+                 off++;
                  }
                  
 
-                 return pbyteNextFF;
+                 return off;
          }
 
 
-         BYTEGetCurBytePos() const
+         BYTE *GetCurBytePos() const
          {
                  LONG  validBits = _validBits;
-                 BYTE* compressedBytes = _position;
+                 size_t off = _current_offset;
 
                  for (;;)
                  {
-                         LONG cbitLast = compressedBytes[-1] == 0xFF ? 7 : 8;
+                         LONG cbitLast = (*_position)[off - 1] == 0xFF ? 7 : 8;
 
                          if (validBits < cbitLast )
-                                 return compressedBytes;
+                                 return (*_position) + off;
 
                          validBits -= cbitLast; 
-                         compressedBytes--;
-                 }     
+                         off--;
+                 }
          }
 
 
@@ -273,12 +277,18 @@ protected:
        OFauto_ptr<ProcessLine> _processLine;
 
 private:
+       BYTE current_value() const
+       {
+               return (*_position)[_current_offset];
+       }
+
        // decoding
        bufType _readCache;
        LONG _validBits;
-       BYTE* _position;
-       BYTE* _nextFFPosition;
-       BYTE* _endPosition;
+       BYTE **_position;
+       size_t *_size;
+       size_t _current_offset;
+       size_t _nextFFPosition;
 };
 
 
index ecc823cc42e61e3c62da818493ec362e07baf45c..786754e495db646559a19b47c680c4d6c87ed8ba 100644 (file)
@@ -5,7 +5,11 @@
 #ifndef CHARLS_ENCODERSTRATEGY
 #define CHARLS_ENCODERSTRATEGY
 
+#define INCLUDE_NEW
+#include "dcmtk/ofstd/ofstdinc.h"
+
 #include "dcmtk/ofstd/ofaptr.h"
+#include "dcmtk/ofstd/ofbmanip.h"
 #include "procline.h"
 #include "decodstr.h"
 
@@ -42,16 +46,17 @@ public:
 
     virtual void SetPresets(const JlsCustomParameters& presets) = 0;
     
-  virtual size_t EncodeScan(const void* pvoid, void* pvoidOut, size_t byteCount, void* pvoidCompare) = 0;
+  virtual size_t EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare) = 0;
 
 protected:
 
-  void Init(BYTE* compressedBytes, size_t byteCount)
+  void Init(BYTE **ptr, size_t *size, size_t offset)
   {
     bitpos = 32;
     valcurrent = 0;
-    _position = compressedBytes;
-      _compressedLength = byteCount;
+    _position = ptr;
+    _size = size;
+    _current_offset = offset;
   }
 
 
@@ -114,22 +119,18 @@ protected:
       if (_isFFWritten)
       {
         // JPEG-LS requirement (T.87, A.1) to detect markers: after a xFF value a single 0 bit needs to be inserted.
-        *_position = BYTE(valcurrent >> 25);
-        valcurrent = valcurrent << 7;     
-        bitpos += 7;  
+        write(BYTE(valcurrent >> 25));
+        valcurrent = valcurrent << 7;
+        bitpos += 7;
         _isFFWritten = false;
       }
       else
       {
-        *_position = BYTE(valcurrent >> 24);
+        write(BYTE(valcurrent >> 24));
+        _isFFWritten = (*_position)[_current_offset - 1] == 0xFF;
         valcurrent = valcurrent << 8;     
-        bitpos += 8;      
-        _isFFWritten = *_position == 0xFF;      
+        bitpos += 8;
       }
-      
-      _position++;
-      _compressedLength--;
-      _bytesWritten++;
 
     }
     
@@ -153,13 +154,45 @@ protected:
   JlsParameters _info;
   OFauto_ptr<ProcessLine> _processLine;
 private:
+  static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size)
+  {
+    size_t new_size = *old_size * 2;
+#ifdef HAVE_STD__NOTHROW
+    BYTE *new_ptr = new(std::nothrow) BYTE[new_size];
+#else
+    BYTE *new_ptr = new BYTE[new_size];
+#endif
+    if (new_ptr == NULL) {
+      throw alloc_fail();
+    }
+
+    OFBitmanipTemplate<BYTE>::copyMem(old_ptr, new_ptr, *old_size);
+
+    delete[] old_ptr;
+
+    *old_size = new_size;
+
+    return new_ptr;
+  }
+
+  void write(BYTE value)
+  {
+    if (_current_offset == *_size) {
+      *_position = re_alloc(*_position, _size);
+    }
+
+    (*_position)[_current_offset] = value;
+    ++_current_offset;
+    ++_bytesWritten;
+  }
 
   unsigned int valcurrent;
   LONG bitpos;
-  size_t _compressedLength;
   
   // encoding
-  BYTE* _position;
+  BYTE **_position;
+  size_t *_size;
+  size_t _current_offset;
   bool _isFFWritten;
   size_t _bytesWritten;
 
index 11c3879b8817ff5b0548f5547d5282caa950dbc3..f7c3dd17ea6c512ab8e4e4464c2e7639130d1ea5 100644 (file)
@@ -145,9 +145,7 @@ JpegSegment* CreateMarkerStartOfFrame(Size size, LONG bitsPerSample, LONG ccomp)
 //
 JLSOutputStream::JLSOutputStream() :
        _bCompare(false),
-       _pdata(NULL),
-       _cbyteOffset(0),
-       _cbyteLength(0),
+       _cbytesWritten(0),
        _icompLast(0)
 {
 }
@@ -194,12 +192,14 @@ void JLSOutputStream::AddColorTransform(int i)
 //
 // Write()
 //
-size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength)
+size_t JLSOutputStream::Write(BYTE **ptr, size_t *size, size_t offset)
 {
-       _pdata = pdata;
-       _cbyteLength = cbyteLength;
+       _position = ptr;
+       _size = size;
+       _current_offset = offset;
 
        WriteByte(0xFF);
+
        WriteByte(JPEG_SOI);
        
        for (size_t i = 0; i < _segments.size(); ++i)
@@ -212,7 +212,7 @@ size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength)
        WriteByte(0xFF);
        WriteByte(JPEG_EOI);
 
-       return _cbyteOffset;
+       return _cbytesWritten;
 }
 
 
@@ -531,7 +531,9 @@ void JLSInputStream::ReadScan(void* pvout)
 {
        OFauto_ptr<DecoderStrategy> qcodec = JlsCodecFactory<DecoderStrategy>().GetCodec(_info, _info.custom);
        
-       _cbyteOffset += qcodec->DecodeScan(pvout, _rect, _pdata + _cbyteOffset, _cbyteLength - _cbyteOffset, _bCompare); 
+       BYTE **ptr = (BYTE **)&_pdata;
+       size_t *size = &_cbyteLength;
+       _cbyteOffset += qcodec->DecodeScan(pvout, _rect, ptr, size, _cbyteOffset, _bCompare);
 }
 
 
@@ -551,8 +553,8 @@ public:
                JlsParameters info = _info;
                info.components = _ccompScan;   
                OFauto_ptr<EncoderStrategy> qcodec =JlsCodecFactory<EncoderStrategy>().GetCodec(info, _info.custom);
-               size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->GetPos(), pstream->GetLength(), pstream->_bCompare ? pstream->GetPos() : NULL); 
-               pstream->Seek(cbyteWritten);
+               size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->get_pos(), pstream->get_size(), pstream->get_offset(), pstream->_bCompare);
+               pstream->seek(cbyteWritten);
        }
 
 
index 91f75f1e83fc549fcc6786ad90fb3d3c10b800f5..be79740486a6904b3a1e8db4969283f6803860d1 100644 (file)
@@ -37,13 +37,37 @@ JLS_ERROR CheckInput(const void* compressedData, size_t compressedLength, const
        return CheckParameterCoherent(pparams);
 }
 
+JLS_ERROR CheckInput(const void* uncompressedData, size_t uncompressedLength, const JlsParameters* pparams)
+{
+       if (pparams == NULL)
+               return InvalidJlsParameters;
+
+       if (uncompressedData == NULL)
+               return InvalidJlsParameters;
+
+       if (pparams->width < 1 || pparams->width > 65535)
+               return ParameterValueNotSupported;
+
+       if (pparams->height < 1 || pparams->height > 65535)
+               return ParameterValueNotSupported;
+
+       int bytesperline = pparams->bytesperline < 0 ? -pparams->bytesperline : pparams->bytesperline;
+
+       if (uncompressedLength < size_t(bytesperline * pparams->height))
+               return InvalidJlsParameters;
+
+       return CheckParameterCoherent(pparams);
+}
+
 
 
 extern "C"
 {
 
-CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams)
+CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(BYTE **buf, size_t *buf_size, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams)
 {
+       *pcbyteWritten = 0;
+
        JlsParameters info = *pparams;
        if(info.bytesperline == 0)
        {
@@ -54,7 +78,7 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL
                }
        }
        
-       JLS_ERROR parameterError = CheckInput(compressedData, compressedLength, uncompressedData, uncompressedLength, &info);
+       JLS_ERROR parameterError = CheckInput(uncompressedData, uncompressedLength, &info);
 
        if (parameterError != OK)
                return parameterError;
@@ -86,9 +110,15 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL
                stream.AddScan(uncompressedData, &info);
        }
 
-       
-       stream.Write((BYTE*)compressedData, compressedLength);
-       
+       try
+       {
+               stream.Write(buf, buf_size, 0);
+       }
+       catch (const alloc_fail&)
+       {
+               return MemoryAllocationFailure;
+       }
+
        *pcbyteWritten = stream.GetBytesWritten();      
        return OK;
 }
@@ -169,14 +199,23 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsVerifyEncode(const void* uncompressedData, size
        {
                stream.AddScan(uncompressedData, &info);
        }
-
-       OFVector<BYTE> rgbyteCompressed(compressedLength + 16);
-       
-       memcpy(&rgbyteCompressed[0], compressedData, compressedLength);
        
+       size_t buf_size = compressedLength + 16;
+       BYTE *buf = new BYTE[buf_size];
+
+       memcpy(buf, compressedData, compressedLength);
+
        stream.EnableCompare(true);
-       stream.Write(&rgbyteCompressed[0], compressedLength);
-       
+
+       try
+       {
+               stream.Write(&buf, &buf_size, 0);
+       }
+       catch (const alloc_fail&)
+       {
+               return MemoryAllocationFailure;
+       }
+
        return OK;
 }
 
index 5272affc775544bf8d3803373b81dd0a75887612..c8fdaa901c477023e45465bac4882a860032dff9 100644 (file)
@@ -25,8 +25,8 @@
 extern "C" 
 {
 #endif
-  CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, 
-           const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams);
+  CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(BYTE **ptr, size_t *size, size_t* pcbyteWritten,
+               const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams);
 
   CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsDecode(void* uncompressedData, size_t uncompressedLength, 
                const void* compressedData, size_t compressedLength, 
index 612738cd474513c7fa91f7cedbf8777c7746fb7b..9e2fd48a73a7b813eea0706654bdf75e614c241f 100644 (file)
@@ -17,7 +17,8 @@ enum JLS_ERROR
        TooMuchCompressedData,
        ImageTypeNotSupported,
        UnsupportedBitDepthForTransform,
-       UnsupportedColorTransform
+       UnsupportedColorTransform,
+       MemoryAllocationFailure
 };
 
 
index 589e299b3fe9b9b4e540ae2f7dccf52d65b1c859..5cd251518ee4c8f37c793ad43930f25be0d89bc3 100644 (file)
@@ -262,15 +262,15 @@ public:
 
          void DoLine(SAMPLE* pdummy);
          void DoLine(Triplet<SAMPLE>* pdummy);
-         void DoScan(BYTE* compressedBytes, size_t compressedLength);         
+         void DoScan(BYTE **ptr, size_t *size, size_t offset);
 
 public:
        ProcessLine* CreateProcess(void* pvoidOut);
        void InitDefault();
        void InitParams(LONG t1, LONG t2, LONG t3, LONG nReset);
 
-       size_t  EncodeScan(const void* rawData, void* pvoidOut, size_t compressedLength, void* pvoidCompare);
-       size_t  DecodeScan(void* rawData, const JlsRect& size, const void* compressedData, size_t compressedLength, bool bCompare);
+       size_t  EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare);
+       size_t  DecodeScan(void* rawData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCompare);
 
 protected:
        // codec parameters 
@@ -698,11 +698,11 @@ void JlsCodec<TRAITS,STRATEGY>::DoLine(Triplet<SAMPLE>*)
 // In ILV_NONE mode, DoScan is called for each component 
 
 template<class TRAITS, class STRATEGY>
-void JlsCodec<TRAITS,STRATEGY>::DoScan(BYTE* compressedBytes, size_t compressedLength)
+void JlsCodec<TRAITS,STRATEGY>::DoScan(BYTE **ptr, size_t *size, size_t offset)
 {              
        _width = Info().width;
 
-       STRATEGY::Init(compressedBytes, compressedLength);
+       STRATEGY::Init(ptr, size, offset);
 
        LONG pixelstride = _width + 4;
        int components = Info().ilv == ILV_LINE ? Info().components : 1;
@@ -788,19 +788,17 @@ ProcessLine* JlsCodec<TRAITS,STRATEGY>::CreateProcess(void* pvoidOut)
 // Setup codec for encoding and calls DoScan
 
 template<class TRAITS, class STRATEGY>
-size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, void* compressedData, size_t compressedLength, void* pvoidCompare)
+size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare)
 {
        STRATEGY::_processLine = OFauto_ptr<ProcessLine>(CreateProcess(const_cast<void*>(rawData)));
-       
-       BYTE* compressedBytes = static_cast<BYTE*>(compressedData);
 
-       if (pvoidCompare != NULL)
+       if (compare)
        {
-               STRATEGY::_qdecoder = OFauto_ptr<DecoderStrategy>(new JlsCodec<TRAITS,DecoderStrategy>(traits, Info()));                
-               STRATEGY::_qdecoder->Init((BYTE*)pvoidCompare, compressedLength); 
+               STRATEGY::_qdecoder = OFauto_ptr<DecoderStrategy>(new JlsCodec<TRAITS,DecoderStrategy>(traits, Info()));
+               STRATEGY::_qdecoder->Init(ptr, size, offset);
        }
 
-       DoScan(compressedBytes, compressedLength);
+       DoScan(ptr, size, offset);
        
        return  STRATEGY::GetLength();
 
@@ -809,17 +807,16 @@ size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, void* compress
 // Setup codec for decoding and calls DoScan
 
 template<class TRAITS, class STRATEGY>
-size_t JlsCodec<TRAITS,STRATEGY>::DecodeScan(void* rawData, const JlsRect& rect, const void* compressedData, size_t compressedLength, bool bCompare)
+size_t JlsCodec<TRAITS,STRATEGY>::DecodeScan(void* rawData, const JlsRect& rect, BYTE **ptr, size_t *size, size_t offset, bool bCompare)
 {
        STRATEGY::_processLine = OFauto_ptr<ProcessLine>(CreateProcess(rawData));
 
-       BYTE* compressedBytes   = const_cast<BYTE*>(static_cast<const BYTE*>(compressedData));
        _bCompare = bCompare;
 
        BYTE rgbyte[20];
 
        size_t readBytes = 0;
-       ::memcpy(rgbyte, compressedBytes, 4);
+       ::memcpy(rgbyte, *ptr + offset + readBytes, 4);
        readBytes += 4;
 
        size_t cbyteScanheader = rgbyte[3] - 2;
@@ -827,14 +824,14 @@ size_t JlsCodec<TRAITS,STRATEGY>::DecodeScan(void* rawData, const JlsRect& rect,
        if (cbyteScanheader > sizeof(rgbyte))
                throw JlsException(InvalidCompressedData);
 
-       ::memcpy(rgbyte, compressedBytes, cbyteScanheader);
+       ::memcpy(rgbyte, *ptr + offset + readBytes, cbyteScanheader);
        readBytes += cbyteScanheader;
 
        _rect = rect;
 
-       DoScan(compressedBytes + readBytes, compressedLength - readBytes);
+       DoScan(ptr, size, offset + readBytes);
        
-       return STRATEGY::GetCurBytePos() - compressedBytes;
+       return STRATEGY::GetCurBytePos() - (*ptr + offset);
 }
 
 // Initialize the codec data structures. Depends on JPEG-LS parameters like T1-T3.
index ea8e8ceb5623da4bdd30fda1f5484af1a2d92067..a2ef422c87d4159db887adb512689121140def49 100644 (file)
@@ -4,6 +4,9 @@
 #ifndef CHARLS_STREAMS
 #define CHARLS_STREAMS
 
+#define INCLUDE_NEW
+#include "dcmtk/ofstd/ofstdinc.h"
+
 #include "dcmtk/ofstd/ofvector.h"
 #include "dcmtk/ofstd/ofbmanip.h"
 #include "util.h"
@@ -48,24 +51,30 @@ public:
        void AddLSE(const JlsCustomParameters* pcustom);
        void AddColorTransform(int i);
        size_t GetBytesWritten()
-               { return _cbyteOffset; }
+               { return _cbytesWritten; }
 
-       size_t GetLength()
-               { return _cbyteLength - _cbyteOffset; }
+       size_t Write(BYTE **ptr, size_t *size, size_t offset);
+
+       BYTE **get_pos() { return _position; }
+
+       size_t *get_size() { return _size; }
+
+       size_t get_offset() { return _current_offset; }
 
-       size_t Write(BYTE* pdata, size_t cbyteLength);
-       
        void EnableCompare(bool bCompare) 
        { _bCompare = bCompare; }
 private:
-       BYTE* GetPos() const
-               { return _pdata + _cbyteOffset; }
-
        void WriteByte(BYTE val)
        { 
-               ASSERT(!_bCompare || _pdata[_cbyteOffset] == val);
+               ASSERT(!_bCompare || (*_position)[_current_offset] == val);
                
-               _pdata[_cbyteOffset++] = val; 
+               if (_current_offset == *_size) {
+                       *_position = re_alloc(*_position, _size);
+               }
+
+               (*_position)[_current_offset++] = val;
+
+               _cbytesWritten++;
        }
 
        void WriteBytes(const OFVector<BYTE>& rgbyte)
@@ -82,16 +91,40 @@ private:
                WriteByte(BYTE(val % 0x100));
        }
 
-
-    void Seek(size_t byteCount)
-               { _cbyteOffset += byteCount; }
+       void seek(size_t n)
+       {
+               _cbytesWritten += n;
+               _current_offset += n;
+       }
 
        bool _bCompare;
 
 private:
-       BYTE* _pdata;
-       size_t _cbyteOffset;
-       size_t _cbyteLength;
+       static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size)
+       {
+               size_t new_size = *old_size * 2;
+#ifdef HAVE_STD__NOTHROW
+               BYTE *new_ptr = new BYTE[new_size];
+#else
+               BYTE *new_ptr = new BYTE[new_size];
+#endif
+               if (new_ptr == NULL) {
+                       throw alloc_fail();
+               }
+
+               OFBitmanipTemplate<BYTE>::copyMem(old_ptr, new_ptr, *old_size);
+
+               delete[] old_ptr;
+
+               *old_size = new_size;
+
+               return new_ptr;
+       }
+
+       BYTE **_position;
+       size_t *_size;
+       size_t _current_offset;
+       size_t _cbytesWritten;
        LONG _icompLast;
        OFVector<JpegSegment*> _segments;
 };
index b2a02a4a7dc87919e1985ecea00bd774ec4172fd..4b39704f645f32a72f67a5efa92d7e4acc9413c6 100644 (file)
@@ -22,6 +22,7 @@
 #define ABS(a)              (((a) > 0) ? (a) : -(a))
 #endif
 
+class alloc_fail { };
 
 inline LONG log_2(LONG n)
 {
index 261fec82ee451082b2094e92590e0470333e6ed1..64686ff0843495b76e7dd8e4f17ff570f45e627d 100644 (file)
@@ -657,24 +657,20 @@ OFCondition DJLSEncoderBase::compressRawFrame(
 
   if (result.good())
   {
-    // We have no idea how big the compressed pixel data will be and we have no
-    // way to find out, so we just allocate a buffer large enough for the raw data
-    // plus a little more for JPEG metadata.
-    // Yes, this is way too much for just a little JPEG metadata, but some
-    // test-images showed that the buffer previously was too small. Plus, at some
-    // places charls fails to do proper bounds checking and writes behind the end
-    // of the buffer (sometimes way behind its end...).
+    // The buffer is going to be dynamically reallocated if it's too small, so it doesn't matter that
+    // much what initial size we use.
     size_t size = frameSize + 1024;
-    Uint8 *buffer = new Uint8[size];
+    BYTE *buffer = new BYTE[size];
 
-    JLS_ERROR err = JpegLsEncode(buffer, size, &size, framePointer, frameSize, &jls_params);
+    size_t bytesWritten = 0;
+
+    JLS_ERROR err = JpegLsEncode(&buffer, &size, &bytesWritten, framePointer, frameSize, &jls_params);
     result = DJLSError::convert(err);
 
     if (result.good())
     {
-      // 'size' now contains the size of the compressed data in buffer
-      compressedSize = size;
-      result = pixelSequence->storeCompressedFrame(offsetList, buffer, size, fragmentSize);
+      compressedSize = bytesWritten;
+      result = pixelSequence->storeCompressedFrame(offsetList, buffer, compressedSize, fragmentSize);
     }
 
     delete[] buffer;
@@ -1053,25 +1049,19 @@ OFCondition DJLSEncoderBase::compressCookedFrame(
     result = convertToUninterleaved(frameBuffer, buffer, samplesPerPixel, width, height, jls_params.bitspersample);
   }
 
-  // We have no idea how big the compressed pixel data will be and we have no
-  // way to find out, so we just allocate a buffer large enough for the raw data
-  // plus a little more for JPEG metadata.
-  // Yes, this is way too much for just a little JPEG metadata, but some
-  // test-images showed that the buffer previously was too small. Plus, at some
-  // places charls fails to do proper bounds checking and writes behind the end
-  // of the buffer (sometimes way behind its end...).
   size_t compressed_buffer_size = buffer_size + 1024;
-  Uint8 *compressed_buffer = new Uint8[compressed_buffer_size];
+  BYTE *compressed_buffer = new BYTE[compressed_buffer_size];
+
+  size_t bytesWritten = 0;
 
-  JLS_ERROR err = JpegLsEncode(compressed_buffer, compressed_buffer_size,
-      &compressed_buffer_size, framePointer, buffer_size, &jls_params);
+  JLS_ERROR err = JpegLsEncode(&compressed_buffer, &compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params);
   result = DJLSError::convert(err);
 
   if (result.good())
   {
     // 'compressed_buffer_size' now contains the size of the compressed data in buffer
-    compressedSize = compressed_buffer_size;
-    result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressed_buffer_size, fragmentSize);
+    compressedSize = bytesWritten;
+    result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressedSize, fragmentSize);
   }
 
   delete[] buffer;
index 02897d7be7a94a4a94b69143e1d2bb0b48a78be2..2b1e3553424aa5189998df398ac4ba0ce2214ecd 100644 (file)
@@ -544,6 +544,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
index 1d58a38ecbb4b09790d2d3f612373a8f6ff848da..f1f24266c67764e21a2d7e175a8c4865c48ede00 100644 (file)
@@ -662,6 +662,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
index 03959da1d2fb06396b46b777f5113e6ce86aafd7..7c3e685aa0b2a67aea0a4f92bb2bf90c50158001 100644 (file)
@@ -206,6 +206,8 @@ PresentationContext128 = DRAFT_WaveformStorage\UncompressedOrZlib
 # - BreastProjectionXRayImageStorageForProcessing
 # - CompositingPlanarMPRVolumetricPresentationStateStorage
 # - ContentAssessmentResultsStorage
+# - CTDefinedProcedureProtocolStorage
+# - CTPerformedProcedureProtocolStorage
 # - ExtensibleSRStorage
 # - GrayscalePlanarMPRVolumetricPresentationStateStorage
 # - LegacyConvertedEnhancedCTImageStorage
index 5b655d23836b3dcda07991e27800182380bd6116..6f2a513331ee31e833f73b8ad78d9cb851e34799 100644 (file)
@@ -211,6 +211,8 @@ PresentationContext128 = VideoPhotographicImageStorage\MPEG2
 # - Comprehensive3DSRStorage
 # - ContentAssessmentResultsStorage
 # - CornealTopographyMapStorage
+# - CTDefinedProcedureProtocolStorage
+# - CTPerformedProcedureProtocolStorage
 # - DeformableSpatialRegistrationStorage
 # - EncapsulatedCDAStorage
 # - EnhancedMRColorImageStorage
index 27b7b220fce3bca729f74c80f2b96c0d479b1aa1..c93f175698a1b77215b89425c0ebb02ef5d663c9 100644 (file)
@@ -929,6 +929,8 @@ OFCondition DcmStorageSCU::sendSOPInstances()
 
 void DcmStorageSCU::notifySOPInstanceToBeSent(const TransferEntry &transferEntry)
 {
+    // avoid compiler warning
+    (void)transferEntry;
     // do nothing in the default implementation
 }
 
index 8a10d323d13f049475f47b702a17e850bdbbde16..0a7d3e0eb0a77bda03a27babe921b01fe9a9fa44 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 1994-2015, OFFIS e.V.
+ *  Copyright (C) 1994-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were partly developed by
@@ -466,7 +466,7 @@ parseUserInfo(DUL_USERINFO * userInfo,
     userInfo->type = *buf++;
     // skip unused ("reserved") field
     userInfo->rsv1 = *buf++;
-    // get and remeber announced length of user data
+    // get and remember announced length of user data
     EXTRACT_SHORT_BIG(buf, userInfo->length);
     // .. and skip over the two length field bytes
     buf += 2;
@@ -838,7 +838,7 @@ makeUnderflowError(const char *pdu, unsigned long minuend,
         unsigned long subtrahend)
 {
   OFStringStream stream;
-  stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtrat " << subtrahend << " bytes of data";
+  stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtract " << subtrahend << " bytes of data";
   stream << "." << OFStringStream_ends;
 
   OFCondition ret;
diff --git a/dcmpmap/CMakeLists.txt b/dcmpmap/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5871a54
--- /dev/null
@@ -0,0 +1,10 @@
+# declare project
+PROJECT(dcmpmaps)
+
+# declare include directories which hold for all subdirectories
+INCLUDE_DIRECTORIES(${dcmpmaps_SOURCE_DIR}/include  ${dcmfg_SOURCE_DIR}/include ${dcmiod_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${ZLIB_INCDIR})
+
+# recurse into subdirectories
+FOREACH(SUBDIR libsrc include)
+  ADD_SUBDIRECTORY(${SUBDIR})
+ENDFOREACH(SUBDIR)
diff --git a/dcmpmap/Makefile.in b/dcmpmap/Makefile.in
new file mode 100644 (file)
index 0000000..49fda78
--- /dev/null
@@ -0,0 +1,86 @@
+#
+#      Makefile for dcmpmaps
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all: include-all libsrc-all tests-all
+
+install: install-doc install-support
+
+install-doc: docs-install
+
+install-data: data-install
+
+install-etc: etc-install
+
+install-include: include-install
+
+install-lib: libsrc-install install-include
+
+install-support: install-data install-etc
+
+
+include-all:
+       (cd include && $(MAKE) ARCH="$(ARCH)" all)
+
+libsrc-all: include-all
+       (cd libsrc && $(MAKE) ARCH="$(ARCH)" all)
+
+tests-all: libsrc-all
+       (cd tests && $(MAKE) ARCH="$(ARCH)" all)
+
+
+check: tests-all
+       (cd tests && $(MAKE) check)
+
+check-exhaustive: tests-all
+       (cd tests && $(MAKE) check-exhaustive)
+
+
+include-install:
+       (cd include && $(MAKE) ARCH="$(ARCH)" install)
+
+libsrc-install: libsrc-all
+       (cd libsrc && $(MAKE) ARCH="$(ARCH)" install)
+
+docs-install:
+       (cd docs && $(MAKE) install)
+
+data-install:
+       (cd data && $(MAKE) install)
+
+etc-install:
+       (cd etc && $(MAKE) install)
+
+
+clean:
+       (cd include && $(MAKE) clean)
+       (cd libsrc && $(MAKE) clean)
+       (cd tests && $(MAKE) clean)
+       (cd docs && $(MAKE) clean)
+       (cd data && $(MAKE) clean)
+       (cd etc && $(MAKE) clean)
+       rm -f $(TRASH)
+
+distclean:
+       (cd include && $(MAKE) distclean)
+       (cd libsrc && $(MAKE) distclean)
+       (cd tests && $(MAKE) distclean)
+       (cd docs && $(MAKE) distclean)
+       (cd data && $(MAKE) distclean)
+       (cd etc && $(MAKE) distclean)
+       rm -f $(DISTTRASH)
+
+dependencies:
+       (cd libsrc && touch $(DEP) && $(MAKE) dependencies)
+       (cd tests && touch $(DEP) && $(MAKE) dependencies)
diff --git a/dcmpmap/configure b/dcmpmap/configure
new file mode 100755 (executable)
index 0000000..3877a6a
--- /dev/null
@@ -0,0 +1,53 @@
+#! /bin/sh
+
+parentdir=`pwd`
+thisdir=$parentdir
+
+# The following test constructs relative path from the module
+# directory to the configuration directory. If you know this path
+# you can substitute this with
+# configdir=<relative_path>
+# It is very important that the configdir path is relative.
+
+configdir="configdir"
+
+while test "$parentdir" != "/" -a "$configdir" = "configdir"; do
+       if test -d "$parentdir/config" ; then
+               configdir=$parentdir/config
+       else
+               parentdir=`echo $parentdir | sed 's/\/[^\/]*$//'`
+       fi
+done
+
+if test "$configdir" = "configdir" ; then
+       echo "Cannot find configure directory"
+       exit 1
+fi
+
+if test $# != 0;  then
+       case $1 in
+       -a)
+               shift
+               cd "$configdir"
+               echo "running configure in config-directory"
+               ./configure $*
+               cd $thisdir
+               echo "running configure for this module"
+               sh "$configdir/confmod" --srcdir=. $*
+               ;;
+       -c)
+               shift
+               cd "$configdir"
+               echo "running configure in config-directory"
+               ./configure $*
+               ;;
+       *)
+               echo "running configure for this module"
+               sh "$configdir/confmod" --srcdir=. $*
+               ;;
+       esac
+else
+       echo "running configure for this module"
+       sh "$configdir/confmod" --srcdir=. $*
+fi
+
diff --git a/dcmpmap/data/Makefile.in b/dcmpmap/data/Makefile.in
new file mode 100644 (file)
index 0000000..fb38e30
--- /dev/null
@@ -0,0 +1,23 @@
+#
+#      Makefile for dcmpmap/data
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+
+clean:
+       rm -f $(TRASH)
+
+distclean:
+       rm -f $(DISTTRASH)
diff --git a/dcmpmap/docs/Makefile.in b/dcmpmap/docs/Makefile.in
new file mode 100644 (file)
index 0000000..80daade
--- /dev/null
@@ -0,0 +1,23 @@
+#
+#      Makefile for dcmpmap/docs
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+
+clean:
+       rm -f $(TRASH)
+
+distclean:
+       rm -f $(DISTTRASH)
diff --git a/dcmpmap/docs/dcmpmap.dox b/dcmpmap/docs/dcmpmap.dox
new file mode 100644 (file)
index 0000000..1bffad2
--- /dev/null
@@ -0,0 +1,527 @@
+/*!
+
+\page mod_dcmpmap dcmpmap: a library for working with parametric map objects
+
+This module contains classes to create, load, access and store DICOM Parametric
+Map objects, which have originally been introduced to the DICOM standard with
+<a href="ftp://medical.nema.org/medical/dicom/final/sup172_ft2.pdf">Supplement
+172</a> in 2014.
+
+In the standard, the data inside each Parametric Map object must rely on one of
+these data types:
+
+\li 16 bit unsigned integer
+\li 16 bit signed integer
+\li 32 bit floating point
+\li 64 bit floating point
+
+All of them are supported by the dcmpmap library.
+
+The main class of this module is:
+\li \b DPMParametricMapIOD
+
+This module makes heavy use of the \ref mod_dcmiod "dcmiod" module for managing
+common IOD attributes and the \ref mod_dcmfg "dcmfg" module for functional group
+support. Read the "Examples" sections for more explanations.
+
+\section Examples
+
+The following two examples show:
+\li How to access and dump information (including the binary data values) from a
+Parametric Map object
+\li and how to use the API to create such an object yourself.
+
+\subsection example_dump Dumping information from Parametric Map
+
+The Parametric Map class uses a template in order to instantiate the correct
+pixel data type internally, and to offer a dedicated API for that type. Allowed
+types are Uint16, Sint16, Float32 and Float64.
+
+Since internally the data types are handled in a C++ Variant, the usual concept
+to "switch" between these types in code is to use a Visitor which overloads the
+operator "()" for each data type that can occur in the Variant. This concept is
+also demonstrated below where the type of pixel data is printed.
+
+The rest of the code uses the API of the \ref mod_dcmiod "dcmiod" and
+\ref mod_dcmfg "dcmfg" module in order to get basic information about Patient,
+Study, Series and Instance, as well as functional group information, especially
+the Real World Value Mapping defined in the file.
+
+\code
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+#include "dcmtk/dcmpmap/dpmparametricmapiod.h"
+
+static void dumpRWVM(const unsigned long frameNumber,
+                     FGInterface& fg)
+{
+  FGRealWorldValueMapping* rw = OFstatic_cast(FGRealWorldValueMapping*, fg.get(frameNumber, DcmFGTypes::EFG_REALWORLDVALUEMAPPING));
+  if (rw)
+  {
+    size_t numMappings = rw->getRealWorldValueMapping().size();
+    COUT << "  Number of Real World Value Mappings defined: " << numMappings << OFendl;
+    for (size_t m = 0; m < numMappings; m++)
+    {
+      FGRealWorldValueMapping::RWVMItem* item = rw->getRealWorldValueMapping()[m];
+      OFString label, expl;
+      item->getLUTLabel(label);
+      item->getLUTExplanation(expl);
+      COUT << "    RWVM Mapping #" << m << ":" << OFendl;
+      COUT << "      LUT Label: << " << label << OFendl;
+      COUT << "      LUT Explanation: " << expl << OFendl;
+      COUT << "      Measurement Units Code: " << item->getMeasurementUnitsCode().toString() << OFendl;
+      size_t numQuant = item->getEntireQuantityDefinitionSequence().size();
+      if (numQuant > 0)
+      {
+        COUT << "    Number of Quantities defined: " << numQuant << OFendl;
+        for (size_t q = 0; q < numQuant; q++)
+        {
+          ContentItemMacro* macro = item->getEntireQuantityDefinitionSequence()[q];
+          COUT << "      Quantity #" << q << ": " << macro->toString() << OFendl;
+        }
+      }
+    }
+  }
+  else
+  {
+    CERR << "  Error: No Real World Value Mappings defined for frame #" << frameNumber << OFendl;
+  }
+}
+
+class DumpFramesVisitor
+{
+public:
+
+  DumpFramesVisitor(DPMParametricMapIOD* map,
+                    const unsigned long numPerFrame)
+  : m_Map(map)
+  , m_numPerFrame(numPerFrame)
+  {
+  }
+
+  template<typename T>
+  OFBool operator()(DPMParametricMapIOD::Frames<T>& frames)
+  {
+    dumpDataType(frames);
+    for (unsigned long f = 0; f < m_Map->getNumberOfFrames(); f++)
+    {
+      COUT << "Dumping info of frame #" << f << ":" << OFendl;
+      FGInterface& fg = m_Map->getFunctionalGroups();
+      dumpRWVM(f, fg);
+      COUT << "Dumping data for frame #" << f << ": " << OFendl;
+      T* frame = frames.getFrame(f);
+      for (unsigned long p = 0; p < m_numPerFrame; p++)
+      {
+        COUT << frame[p] << " ";
+      }
+      COUT << OFendl << OFendl;
+    }
+    return 0;
+  }
+
+  OFBool operator()(OFCondition& cond)
+  {
+    // Avoid compiler warning
+    (void)cond;
+    CERR << "Type of data samples not supported" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Float32>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 32 Bit float data" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Uint16>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 16 Bit unsigned integer data" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Sint16>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 16 Bit signed integer data" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Float64>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 64 Bit float data" << OFendl;
+    return OFTrue;
+  }
+
+  template<typename T>
+  OFBool dumpDataType(DPMParametricMapIOD::Frames<T>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    CERR << "Type of data samples not supported" << OFendl;
+    return OFFalse;
+  }
+
+  DPMParametricMapIOD* m_Map;
+  unsigned long m_numPerFrame;
+
+};
+
+
+static void dumpGeneral(DPMParametricMapIOD& map)
+{
+  OFString patName, patID, studyUID, studyDate, seriesUID, modality, sopUID;
+  map.getPatient().getPatientName(patName);
+  map.getPatient().getPatientID(patID);
+  map.getStudy().getStudyInstanceUID(studyUID);
+  map.getStudy().getStudyDate(studyDate);
+  map.getSeries().getSeriesInstanceUID(seriesUID);
+  map.getSeries().getModality(modality);
+  map.getSOPCommon().getSOPInstanceUID(sopUID);
+  COUT << "Patient Name       : " << patName << OFendl;
+  COUT << "Patient ID         : " << patID << OFendl;
+  COUT << "Study Instance UID : " << studyUID << OFendl;
+  COUT << "Study Date         : " << studyDate << OFendl;
+  COUT << "Series Instance UID: " << seriesUID << OFendl;
+  COUT << "SOP Instance UID   : " << sopUID << OFendl;
+  COUT << "---------------------------------------------------------------" << OFendl;
+  OFBool isPerFrame;
+  map.getFunctionalGroups().get(0, DcmFGTypes::EFG_REALWORLDVALUEMAPPING, isPerFrame);
+  if (isPerFrame)
+  {
+    COUT << "Real World Value Mapping: Defined per-frame" << OFendl;
+  }
+  else
+  {
+    COUT << "Real World Value Mapping: Defined shared (i.e. single definition for all frames):" << OFendl;
+  }
+  COUT << "---------------------------------------------------------------" << OFendl;
+}
+
+
+int main (int argc, char* argv[])
+{
+  // OFLog::configure(OFLogger::DEBUG_LOG_LEVEL);
+  OFString inputFile;
+  if (argc < 2)
+  {
+    CERR << "Usage: dump_pmp <input-file>" << std::endl;
+    return 1;
+  }
+  else
+  {
+    inputFile = argv[1];
+    if (!OFStandard::fileExists(inputFile))
+    {
+      CERR << "Input file " << inputFile << " does not exist " << OFendl;
+      return 1;
+    }
+  }
+
+  OFvariant<OFCondition,DPMParametricMapIOD*> result = DPMParametricMapIOD::loadFile(inputFile);
+  if (OFget<DPMParametricMapIOD*>(&result))
+  {
+    DPMParametricMapIOD* map = *OFget<DPMParametricMapIOD*>(&result);
+    dumpGeneral(*map);
+    COUT << "Dumping #" << map->getNumberOfFrames() << " frames of file " << inputFile << OFendl;
+    Uint16 rows, cols = 0;
+    map->getRows(rows);
+    map->getColumns(cols);
+    unsigned long numPerFrame = rows * cols;
+    DPMParametricMapIOD::FramesType frames = map->getFrames();
+    OFvisit<OFBool>(DumpFramesVisitor(map, numPerFrame), frames);
+  }
+  else
+  {
+    CERR << "Could not load parametric map: " << (*OFget<OFCondition>(&result)).text() << OFendl;
+    exit(1);
+  }
+  exit(0);
+}
+
+\endcode
+
+
+\subsection example_create Creation of Parametric Maps
+
+The Parametric Map class uses a template in order to instantiate the correct
+pixel data type internally, and to offer a dedicated API for that type. Allowed
+types are Uint16, Sint16, Float32 and Float64. The example below demonstrates
+that the API use is generally the same for all types.
+
+The procedure in the example (and most of it applies for the general case) is as
+follows:
+
+\li The main() routine calls test_pmap() four times, each time using a different
+Image Pixel Module as template parameter which makes sure that the right pixel
+data type is used within the created Parametric Map.
+\li test_pmap() demonstrates the overall steps to create the map:
+\li Create a new Parametric Map by calling DPMParametricMapIOD::create()
+(via create_pmap()), and then
+\li add shared functional groups,
+\li add dimensions,
+\li and add frames with the related per-frame functional groups to the object.
+\li Finally, general data regarding Patient and Study is set.
+\li Note that the order of these steps in test_pmap() does not matter.
+
+
+Per default, DPMParametricMapIOD::create() creates a new DICOM instance, within
+a brand-new DICOM Series that belongs to a brand-new DICOM Study. All minimal
+information for Patient, Study and Series will be set (e.g. Study, Series and
+SOP Instance UID as well as other information that is handed over to the
+create() call, like Series Number). Patient Name and ID are left empty per
+default.
+
+Of course, often you might want to put the new instance into an existing Series
+instead, or place the brand-new Series into an existing Study or at least assign
+it to an existing Patient. The easiest way to to do that is to use the call
+import() that imports Patient or even Study, Series and Frame of Reference
+information from an existing file, i.e. place it under an existing Patient,
+Study and/or Series.
+
+When adding information to the Parametric Map using the public API, some basic
+checks are usually performed on the data. Finally, when calling saveFile(), some
+further checks take place, e.g. validating the structure of the functional
+groups or making sure that all required element values are set.
+
+\code
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftest.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmparametricmapiod.h"
+#include "dcmtk/dcmfg/fgpixmsr.h"
+#include "dcmtk/dcmfg/fgplanpo.h"
+#include "dcmtk/dcmfg/fgplanor.h"
+#include "dcmtk/dcmfg/fgfracon.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
+#include "dcmtk/dcmfg/fgframevoilut.h"
+#include "dcmtk/dcmfg/fgrealworldvaluemapping.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
+
+const size_t NUM_FRAMES = 10;
+const Uint16 ROWS = 10;
+const Uint16 COLS = 10;
+const unsigned long NUM_VALUES_PER_FRAME = ROWS * COLS;
+
+
+// Set Patient and Study example data
+static void setGenericData(DPMParametricMapIOD& map)
+{
+  map.getPatient().setPatientName("Onken^Michael");
+  map.getPatient().setPatientID("007");
+  map.getStudy().setStudyDate("20160721");
+  map.getStudy().setStudyTime("111200");
+  map.getStudy().setStudyID("4711");
+}
+
+
+// Create Parametric Map
+template<typename ImagePixel>
+static OFvariant<OFCondition,DPMParametricMapIOD> create_pmap()
+{
+  return DPMParametricMapIOD::create<ImagePixel>
+  (
+    "MR",                 // Modality
+    "1",                  // Series Number
+    "1",                  // Instance Number
+    ROWS,
+    COLS,
+    IODEnhGeneralEquipmentModule::EquipmentInfo("Open Connections GmbH", "make_pmp", "SN_0815", "0.1"),
+    ContentIdentificationMacro("1", "PARAMAP_LABEL", "Example description from test program", "Onken^Michael"),
+    "VOLUME",             // Image Flavor
+    "MTT",                // Derived Pixel Contrast
+    DPMTypes::CQ_RESEARCH // Content Qualification
+  );
+}
+
+
+// Add those functional groups that are common for all frames
+static OFCondition addSharedFunctionalGroups(DPMParametricMapIOD& map)
+{
+  FGPixelMeasures pixelMeasures;
+  pixelMeasures.setPixelSpacing("1\\1");
+  pixelMeasures.setSliceThickness("0.1");
+  pixelMeasures.setSpacingBetweenSlices("0.1");
+  FGPlaneOrientationPatient planeOrientPatientFG;
+  planeOrientPatientFG.setImageOrientationPatient("1", "0", "0", "0", "1", "0");
+  FGFrameAnatomy frameAnaFG;
+  frameAnaFG.setLaterality(FGFrameAnatomy::LATERALITY_UNPAIRED);
+  frameAnaFG.getAnatomy().getAnatomicRegion().set("T-A0100", "SRT", "Brain");
+  FGIdentityPixelValueTransformation idTransFG;
+  FGParametricMapFrameType frameTypeFG;
+  frameTypeFG.setFrameType("DERIVED\\PRIMARY\\VOLUME\\MTT");
+
+  // Add groups to Parametric Map
+  OFCondition result;
+  if ((result = map.addForAllFrames(pixelMeasures)).good())
+  if ((result = map.addForAllFrames(planeOrientPatientFG)).good())
+  if ((result = map.addForAllFrames(frameAnaFG)).good())
+  if ((result = map.addForAllFrames(idTransFG)).good())
+    result = map.addForAllFrames(frameTypeFG);
+
+  return result;
+}
+
+
+// Add a single dimension for demonstration purposes based on "Image Position Patient"
+static OFCondition addDimensions(DPMParametricMapIOD& map)
+{
+  IODMultiframeDimensionModule& mod = map.getIODMultiframeDimensionModule();
+  OFString dimUID = DcmIODUtil::createUID(0);
+  OFCondition result = mod.addDimensionIndex(DCM_ImagePositionPatient, dimUID, DCM_RealWorldValueMappingSequence, "Frame position");
+  return result;
+}
+
+
+// Add one frame to parametric map. Frame number is used to compute some
+// varying example data values differing from frame to frame
+template <typename PixelType>
+static OFCondition addFrame(DPMParametricMapIOD& map,
+                            const unsigned long frameNo)
+{
+  // Create example data
+
+  OFVector<PixelType> data(NUM_VALUES_PER_FRAME);
+  for (size_t n=0; n < data.size(); ++n)
+  {
+    data[n] = (n*frameNo+n) + (0.1 * (frameNo % 10));
+  }
+
+  Uint16 rows, cols;
+  OFCondition cond = map.getImagePixel().getRows(rows);
+  cond = map.getImagePixel().getColumns(cols);
+
+  // Create functional groups
+  OFVector<FGBase*> groups;
+  OFunique_ptr<FGPlanePosPatient> fgPlanePos(new FGPlanePosPatient);
+  OFunique_ptr<FGFrameContent > fgFracon(new FGFrameContent);
+  OFunique_ptr<FGRealWorldValueMapping> fgRVWM(new FGRealWorldValueMapping());
+  FGRealWorldValueMapping::RWVMItem* rvwmItemSimple = new FGRealWorldValueMapping::RWVMItem();
+  if (!fgPlanePos  || !fgFracon || !fgRVWM || !rvwmItemSimple )
+    return EC_MemoryExhausted;
+
+  // Fill in functional group values
+
+  // Real World Value Mapping
+  rvwmItemSimple->setRealWorldValueSlope(10);
+  rvwmItemSimple->setRealWorldValueIntercept(0);
+  rvwmItemSimple->setDoubleFloatRealWorldValueFirstValueMapped(0.12345);
+  rvwmItemSimple->setDoubleFloatRealWorldValueLastValueMapped(98.7654);
+  rvwmItemSimple->getMeasurementUnitsCode().set("{counts}/s", "UCUM", "Counts per second");
+  rvwmItemSimple->setLUTExplanation("We are mapping trash to junk.");
+  rvwmItemSimple->setLUTLabel("Just testing");
+  CodeSequenceMacro* qCodeName = new CodeSequenceMacro("G-C1C6", "SRT", "Quantity");
+  CodeSequenceMacro* qSpec = new CodeSequenceMacro("110805", "SRT", "T2 Weighted MR Signal Intensity");
+  ContentItemMacro* quantity = new ContentItemMacro;
+  if (!quantity || !qSpec || !quantity)
+    return EC_MemoryExhausted;
+  quantity->getEntireConceptNameCodeSequence().push_back(qCodeName);
+  quantity->getEntireConceptCodeSequence().push_back(qSpec);
+  rvwmItemSimple->getEntireQuantityDefinitionSequence().push_back(quantity);
+  quantity->setValueType(ContentItemMacro::VT_CODE);
+  fgRVWM->getRealWorldValueMapping().push_back(rvwmItemSimple);
+
+  // Plane Position
+  OFStringStream ss;
+  ss << frameNo;
+  OFSTRINGSTREAM_GETOFSTRING(ss, framestr) // convert number to string
+  fgPlanePos->setImagePositionPatient("0", "0", framestr);
+
+  // Frame Content
+  OFCondition result = fgFracon->setDimensionIndexValues(frameNo+1 /* value within dimension */, 0 /* first dimension */);
+
+  // Add frame wit related groups
+  if (result.good())
+  {
+    // Add frame
+    groups.push_back(fgPlanePos.get());
+    groups.push_back(fgFracon.get());
+    groups.push_back(fgRVWM.get());
+    groups.push_back(fgPlanePos.get());
+    DPMParametricMapIOD::FramesType frames = map.getFrames();
+    result = OFget<DPMParametricMapIOD::Frames<PixelType> >(&frames)->addFrame(&*data.begin(), NUM_VALUES_PER_FRAME, groups);
+  }
+
+  return result;
+}
+
+
+// Main routine that creates Parametric Maps
+template<typename ImagePixel>
+static OFCondition test_pmap(const OFString& saveDestination)
+{
+  OFvariant<OFCondition,DPMParametricMapIOD> obj = create_pmap<ImagePixel>();
+  if (OFCondition* pCondition = OFget<OFCondition>(&obj))
+    return *pCondition;
+
+  DPMParametricMapIOD& map = *OFget<DPMParametricMapIOD>(&obj);
+
+  OFCondition result;
+  if ((result = addSharedFunctionalGroups(map)).good())
+  if ((result = addDimensions(map)).good())
+  {
+    // Add frames (parametric map data), and per-frame functional groups
+    for (unsigned long f = 0; result.good() && (f < NUM_FRAMES); f++)
+      result = addFrame<OFTypename ImagePixel::value_type>(map, f);
+  }
+
+  // Set some generic data (keep dciodvfy happy on DICOMDIR warnings)
+  if (result.good())
+  {
+    setGenericData(map);
+  }
+
+  // Save
+  if (result.good())
+  {
+    return map.saveFile(saveDestination.c_str());
+  }
+  else
+  {
+    return result;
+  }
+}
+
+
+int main (int argc, char* argv[])
+{
+  OFString outputDir;
+  if (argc < 2)
+  {
+    CERR << "Usage: make_pmp <output-dir>" << std::endl;
+    return 1;
+  }
+  else
+  {
+    outputDir = argv[1];
+    if (!OFStandard::dirExists(outputDir))
+    {
+      CERR << "Output directory " << outputDir << " does not exist " << OFendl;
+      return 1;
+    }
+  }
+
+  //OFLog::configure(OFLogger::DEBUG_LOG_LEVEL);
+
+  // Test all possible parametric map types (signed and unsigned integer, floating point
+  // and double floating point)
+
+  test_pmap<IODImagePixelModule<Uint16> >(outputDir + "/uint_paramap.dcm");
+  test_pmap<IODImagePixelModule<Sint16> >(outputDir + "/sint_paramap.dcm");
+  test_pmap<IODFloatingPointImagePixelModule>(outputDir + "/float_paramap.dcm");
+  test_pmap<IODDoubleFloatingPointImagePixelModule>(outputDir + "/double_paramap.dcm");
+
+  return 0;
+}
+
+\endcode
+
+*/
diff --git a/dcmpmap/etc/Makefile.in b/dcmpmap/etc/Makefile.in
new file mode 100644 (file)
index 0000000..31690d7
--- /dev/null
@@ -0,0 +1,23 @@
+#
+#      Makefile for dcmpmap/etc
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+
+clean:
+       rm -f $(TRASH)
+
+distclean:
+       rm -f $(DISTTRASH)
diff --git a/dcmpmap/include/CMakeLists.txt b/dcmpmap/include/CMakeLists.txt
new file mode 100644 (file)
index 0000000..fc29ca7
--- /dev/null
@@ -0,0 +1,2 @@
+# declare installation files
+INSTALL(DIRECTORY dcmtk/dcmpmap DESTINATION ${DCMTK_INSTALL_INCDIR}/dcmtk COMPONENT include FILES_MATCHING PATTERN "*.h" PATTERN "CVS" EXCLUDE)
diff --git a/dcmpmap/include/Makefile.in b/dcmpmap/include/Makefile.in
new file mode 100644 (file)
index 0000000..37af703
--- /dev/null
@@ -0,0 +1,27 @@
+#
+#      Makefile for dcmpmap/include
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+       $(configdir)/mkinstalldirs $(DESTDIR)$(includedir)/dcmtk/dcmpmap
+       for file in dcmtk/dcmpmap/*.h ; do \
+               $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/dcmtk/dcmpmap ;\
+       done
+
+clean:
+       rm -f $(TRASH)
+
+distclean:
+       rm -f $(DISTTRASH)
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h
new file mode 100644 (file)
index 0000000..82f89c0
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmpmap
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Contains preprocessor definitions
+ *
+ */
+
+
+#ifndef DPMDEF_H
+#define DPMDEF_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofdefine.h"
+
+// definitions for DLL/shared library exports
+
+#ifdef dcmpmap_EXPORTS
+#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_EXPORT
+#else
+#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_IMPORT
+#endif
+
+#endif // DPMDEF_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h
new file mode 100644 (file)
index 0000000..0da18de
--- /dev/null
@@ -0,0 +1,304 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Image Module
+ *
+ */
+
+#ifndef DPMMODPARAMETRICMAPIMAGE_H
+#define DPMMODPARAMETRICMAPIMAGE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofmem.h"
+#include "dcmtk/dcmiod/iodrules.h"
+#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+
+/** Class representing the Parametric Map Image Module:
+ *
+ *  ImageType: (CS, 2-n, 1)
+ *  SamplesPerPixel: (US, 1, 1)
+ *  PhotometricInterpretation: (CS, 1, 1)
+ *  BitsAllocated: (US, 1, 1)
+ *  BitsStored: (US, 1, 1C)
+ *  HighBit: (US, 1, 1C)
+ *  PresentationLUTShape: (CS, 1, 1)
+ *  LossyImageCompression: (CS, 1, 1)
+ *  LossyImageCompressionRatio: (DS, 1-n, 1C)
+ *  LossyImageCompressionMethod: (CS, 1-n, 1C)
+ *  BurnedInAnnotation: (CS, 1, 1)
+ *  RecognizableVisualFeatures: (CS, 1, 1)
+ *  ContentQualification: (CS, 1, 1)
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapImageModule : public IODModule
+{
+public:
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  DPMParametricMapImageModule(OFshared_ptr<DcmItem> item,
+                              OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  DPMParametricMapImageModule();
+
+  /** Destructor
+   */
+  virtual ~DPMParametricMapImageModule();
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module ("DPMParametricMapImageModule")
+   *  @return Name of the module ("DPMParametricMapImageModule")
+   */
+  virtual OFString getName() const;
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Get Image Type
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getImageType(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Get Samples Per Pixel
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getSamplesPerPixel(Uint16 &value,
+                                         const signed long pos = 0) const;
+
+  /** Get Photometric Interpretation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getPhotometricInterpretation(OFString &value,
+                                                   const signed long pos = 0) const;
+
+  /** Get Bits Allocated
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBitsAllocated(Uint16 &value,
+                                       const signed long pos = 0) const;
+
+  /** Get Bits Stored
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBitsStored(Uint16 &value,
+                                    const signed long pos = 0) const;
+
+  /** Get High Bit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getHighBit(Uint16 &value,
+                                 const signed long pos = 0) const;
+
+  /** Get Presentation LUT Shape
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getPresentationLUTShape(OFString &value,
+                                              const signed long pos = 0) const;
+
+  /** Get Lossy Image Compression
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getLossyImageCompression(OFString &value,
+                                               const signed long pos = 0) const;
+
+  /** Get Lossy Image Compression Ratio
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getLossyImageCompressionRatio(OFString &value,
+                                                    const signed long pos = 0) const;
+
+  /** Get Lossy Image Compression Method
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getLossyImageCompressionMethod(OFString &value,
+                                                     const signed long pos = 0) const;
+
+  /** Get Burned In Annotation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBurnedInAnnotation(OFString &value,
+                                            const signed long pos = 0) const;
+
+  /** Get Recognizable Visual Features
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRecognizableVisualFeatures(OFString &value,
+                                                    const signed long pos = 0) const;
+
+  /** Get Content Qualification
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getContentQualification(OFString &value,
+                                              const signed long pos = 0) const;
+
+  /** Set Image Type
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (2-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setImageType(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set Samples Per Pixel
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setSamplesPerPixel(const Uint16 &value,
+                                         const OFBool checkValue = OFTrue);
+
+  /** Set Photometric Interpretation
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPhotometricInterpretation(const OFString &value,
+                                                   const OFBool checkValue = OFTrue);
+
+  /** Set Bits Allocated
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setBitsAllocated(const Uint16 &value,
+                                       const OFBool checkValue = OFTrue);
+
+  /** Set Bits Stored
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setBitsStored(const Uint16 &value,
+                                    const OFBool checkValue = OFTrue);
+
+  /** Set High Bit
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setHighBit(const Uint16 &value,
+                                 const OFBool checkValue = OFTrue);
+
+  /** Set Presentation LUT Shape
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPresentationLUTShape(const OFString &value,
+                                              const OFBool checkValue = OFTrue);
+
+  /** Set Lossy Image Compression
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLossyImageCompression(const OFString &value,
+                                               const OFBool checkValue = OFTrue);
+
+  /** Set Lossy Image Compression Ratio
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLossyImageCompressionRatio(const OFString &value,
+                                                    const OFBool checkValue = OFTrue);
+
+  /** Set Lossy Image Compression Method
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLossyImageCompressionMethod(const OFString &value,
+                                                     const OFBool checkValue = OFTrue);
+
+  /** Set Burned In Annotation
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setBurnedInAnnotation(const OFString &value,
+                                            const OFBool checkValue = OFTrue);
+
+  /** Set Recognizable Visual Features
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRecognizableVisualFeatures(const OFString &value,
+                                                    const OFBool checkValue = OFTrue);
+
+  /** Set ContentQualification
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setContentQualification(const OFString &value,
+                                              const OFBool checkValue = OFTrue);
+
+private:
+  /// The name of this module ("DPMParametricMapImageModule")
+  static const OFString m_ModuleName;
+};
+
+#endif // DPMMODPARAMETRICMAPIMAGE_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
new file mode 100644 (file)
index 0000000..1c8b1b6
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Series Module
+ *
+ */
+
+#ifndef DPMMODPARAMETRICMAPSERIES_H
+#define DPMMODPARAMETRICMAPSERIES_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofmem.h"
+#include "dcmtk/dcmiod/iodrules.h"
+#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+
+/** Class representing the Parametric Map Series Module:
+ *
+ *  Modality: (CS, 1, 1)
+ *  SeriesNumber: (IS, 1, 1)
+ *  ReferencedPerformedProcedureStepSequence: (SQ, 1, 1C)
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapSeriesModule : public IODModule
+{
+public:
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  DPMParametricMapSeriesModule(OFshared_ptr<DcmItem> item,
+                               OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  DPMParametricMapSeriesModule();
+
+  /** Destructor
+   */
+  virtual ~DPMParametricMapSeriesModule();
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module ("DPMParametricMapSeriesModule")
+   *  @return Name of the module ("DPMParametricMapSeriesModule")
+   */
+  virtual OFString getName() const;
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Get Modality
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getModality(OFString &value,
+                                  const signed long pos = 0) const;
+
+  /** Get Series Number
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getSeriesNumber(OFString &value,
+                                      const signed long pos = 0) const;
+
+  /** Get reference to the Referenced Performed Procedure Step Sequence
+   *  @return a reference to the Referenced Performed Procedure Step Sequence
+   */
+  virtual SOPInstanceReferenceMacro* getReferencedPerformedProcedureStepSequence();
+
+  /** Get a reference to the entire Referenced Performed Procedure Step Sequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire Referenced Performed Procedure Step Sequence
+   */
+  virtual OFVector<SOPInstanceReferenceMacro>& getEntireReferencedPerformedProcedureStepSequence();
+
+  /** Set Modality
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setModality(const OFString &value,
+                                  const OFBool checkValue = OFTrue);
+
+  /** Set Series Number
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (IS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setSeriesNumber(const OFString &value,
+                                      const OFBool checkValue = OFTrue);
+
+private:
+  /// The name of this module ("DPMParametricMapSeriesModule")
+  static const OFString m_ModuleName;
+
+  /// ReferencedPerformedProcedureStepSequence
+  OFVector<SOPInstanceReferenceMacro> m_ReferencedPerformedProcedureStepSequence;
+};
+
+#endif // DPMMODPARAMETRICMAPSERIES_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h
new file mode 100644 (file)
index 0000000..923d2d8
--- /dev/null
@@ -0,0 +1,249 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Generated base class representing the Parametric Map IOD
+ *
+ */
+
+#ifndef DPMPARAMETRICMAPBASE_H
+#define DPMPARAMETRICMAPBASE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmfg/fginterface.h"
+#include "dcmtk/dcmfg/fgderimg.h"
+#include "dcmtk/dcmfg/fgfracon.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
+#include "dcmtk/dcmfg/fgframevoilut.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
+#include "dcmtk/dcmfg/fgpixmsr.h"
+#include "dcmtk/dcmfg/fgplanor.h"
+#include "dcmtk/dcmfg/fgplanpo.h"
+#include "dcmtk/dcmfg/fgrealworldvaluemapping.h"
+#include "dcmtk/dcmiod/iodimage.h"
+#include "dcmtk/dcmiod/modacquisitioncontext.h"
+#include "dcmtk/dcmiod/modcommoninstanceref.h"
+#include "dcmtk/dcmiod/modenhequipment.h"
+#include "dcmtk/dcmiod/modequipment.h"
+#include "dcmtk/dcmiod/modgeneralimage.h"
+#include "dcmtk/dcmiod/modgeneralseries.h"
+#include "dcmtk/dcmiod/modgeneralstudy.h"
+#include "dcmtk/dcmiod/modmultiframedimension.h"
+#include "dcmtk/dcmiod/modmultiframefg.h"
+#include "dcmtk/dcmiod/modpatient.h"
+#include "dcmtk/dcmiod/modpatientstudy.h"
+#include "dcmtk/dcmiod/modsopcommon.h"
+#include "dcmtk/dcmiod/modimagepixel.h"
+#include "dcmtk/dcmiod/modfloatingpointimagepixel.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+
+/** Class for managing the Parametric Map IOD attributes. Template parameter defines the type of pixel data
+ *  to use: Unsigned or signed 16 bit integer, or 32 bit floating point, or 64 bit floating point data.
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapBase
+: public DcmIODImage
+<
+    IODImagePixelModule<Uint16>,
+    IODImagePixelModule<Sint16>,
+    IODFloatingPointImagePixelModule,
+    IODDoubleFloatingPointImagePixelModule
+>
+{
+
+public:
+
+  /** Virtual Destructor
+   */
+  virtual ~DPMParametricMapBase();
+
+  // -------------------- loading and saving ---------------------
+
+  /** Save current object to given filename
+   *  @param  filename The file to write to
+   *  @param  writeXfer The transfer syntax to be used
+   *  @return EC_Normal if writing was successful, error otherwise.
+   */
+  virtual OFCondition saveFile(const OFString& filename,
+                               const E_TransferSyntax writeXfer = EXS_LittleEndianExplicit);
+
+  /** Write current object to given item
+   *  @param  dataset The item to write to
+   *  @return EC_Normal if writing was successful, error otherwise.
+   */
+  OFCondition writeDataset(DcmItem& dataset);
+
+  /** Perform some basic checking. This method is also invoked when
+   *  writing the object to a DICOM dataset or file.
+   *  @return OFTrue, if no errors were found, OFFalse otherwise.
+   */
+  virtual OFBool check();
+
+  /** Get access to functional groups. This is meant for reading data from
+   *  functional groups that are not actively managed, i.e.\ made accessible by
+   *  DcmSegmentation. In rare cases, however, it makes sense to access it
+   *  for writing too, e.g.\ in order to add Stacks; use with care!
+   *  @return Reference to the functional groups
+   */
+  virtual FGInterface& getFunctionalGroups();
+
+  /** Get Patient Module
+   *  @return a reference to the IOD Patient Module
+   */
+  virtual IODPatientModule& getIODPatientModule();
+
+  /** Get General Study Module
+   *  @return a reference to the IOD General Study Module
+   */
+  virtual IODGeneralStudyModule& getIODGeneralStudyModule();
+
+  /** Get Patient Study Module
+   *  @return a reference to the IOD Patient Study Module
+   */
+  virtual IODPatientStudyModule& getIODPatientStudyModule();
+
+  /** Get General Series Module
+   *  @return a reference to the IOD General Series Module
+   */
+  virtual IODGeneralSeriesModule& getIODGeneralSeriesModule();
+
+  /** Get Parametric Map Series Module
+   *  @return a reference to the Parametric Map Series Module
+   */
+  virtual DPMParametricMapSeriesModule& getDPMParametricMapSeriesModule();
+
+  /** Get General Equipment Module
+   *  @return a reference to the General Equipment Module
+   */
+  virtual IODGeneralEquipmentModule& getIODGeneralEquipmentModule();
+
+  /** Get Enhanced General Equipment Module
+   *  @return a reference to the Enhanced General Equipment Module
+   */
+  virtual IODEnhGeneralEquipmentModule& getIODEnhGeneralEquipmentModule();
+
+  /** Get General Image Module
+   *  @return a reference to the General Image Module
+   */
+  virtual IODGeneralImageModule& getIODGeneralImageModule();
+
+  /** Get Parametric Map Image Module
+   *  @return a reference to the Parametric Map Image Module
+   */
+  virtual DPMParametricMapImageModule& getDPMParametricMapImageModule();
+
+  /** Get Multi-frame Functional Groups Module
+   *  @return a reference to the Multi-frame Functional Groups Module
+   */
+  virtual IODMultiFrameFGModule& getIODMultiFrameFGModule();
+
+  /** Get Multi-frame Dimension Module
+   *  @return a reference to the Multi-frame Dimension Module
+   */
+  virtual IODMultiframeDimensionModule& getIODMultiframeDimensionModule();
+
+  /** Get Acquisition Context Module
+   *  @return a reference to the Acquisition Context Module
+   */
+  virtual IODAcquisitionContextModule& getIODAcquisitionContextModule();
+
+  /** Get Common Instance Reference Module
+   *  @return a reference to the Common Instance Reference Module
+   */
+  virtual IODCommonInstanceReferenceModule& getIODCommonInstanceReferenceModule();
+
+  /** Get SOP Common Module
+   *  @return a reference to the SOP Common Module
+   */
+  virtual IODSOPCommonModule& getIODSOPCommonModule();
+
+protected:
+
+  /** Constructor; not public since object should be create via factory
+   *  method in derived class.
+   */
+  DPMParametricMapBase();
+
+   /** Constructor; not public since object should be create via factory
+    *  method in derived class.
+    */
+  template<typename ImagePixel>
+  DPMParametricMapBase(OFin_place_type_t(ImagePixel));
+
+  /** Read Parametric Map attributes (all those handled by this class)
+   *  from given item. Reads attributes from base class DcmIODCommon before.
+   *  The current content is deleted even if the reading process fails.
+   *  If the log stream is set and valid the reason for any error might be
+   *  obtained from the error/warning output.
+   *  @param  dataset  Reference to DICOM dataset from which the document
+   *          should be read
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition read(DcmItem &dataset);
+
+  /** Write current Parametric Map's attributes to DICOM dataset. Also
+   *  writes attributes of base class DcmIODCommon afterwards.
+   *  @param  dataset Reference to DICOM dataset to which the current document
+   *          should be written.  The dataset is not cleared before writing
+   *          to it!
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition write(DcmItem &dataset);
+
+  /** Clear (removes) all attributes handled by the modules of this IOD.
+   *  IOD Rules are not reset.
+   */
+  virtual void clearData();
+
+  /** Loads file
+   *  @param  dcmff The file format to load into
+   *  @param  filename The filename of the file to load
+   *  @param  dset Pointer to dataset after loading
+   *  @return EC_Normal if loading was successful, error otherwise
+   */
+  static OFCondition loadFile(DcmFileFormat& dcmff,
+                              const OFString& filename,
+                              DcmDataset*& dset);
+
+  /// Multi-frame Functional Groups high level interface
+  FGInterface m_FGInterface;
+
+  /// Parametric Map Series Module
+  DPMParametricMapSeriesModule m_DPMParametricMapSeriesModule;
+
+  /// Enhanced General Equipment Module
+  IODEnhGeneralEquipmentModule m_IODEnhGeneralEquipmentModule;
+
+  /// Parametric Map Image Module
+  DPMParametricMapImageModule m_DPMParametricMapImageModule;
+
+  /// Multi-frame Functional Groups Module
+  IODMultiFrameFGModule m_IODMultiFrameFGModule;
+
+  /// Multi-frame Dimension Module
+  IODMultiframeDimensionModule m_IODMultiframeDimensionModule;
+
+  /// Acquisition Context Module
+  IODAcquisitionContextModule m_IODAcquisitionContextModule;
+
+  /// Common Instance Reference Module
+  IODCommonInstanceReferenceModule m_IODCommonInstanceReferenceModule;
+
+};
+
+#endif // DPMPARAMETRICMAPBASE_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h
new file mode 100644 (file)
index 0000000..9d25e1b
--- /dev/null
@@ -0,0 +1,305 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Class representing the Parametric Map IOD
+ *
+ */
+
+#ifndef DPMPARAMETRICMAPIOD_H
+#define DPMPARAMETRICMAPIOD_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmpmap/dpmparametricmapbase.h"
+#include "dcmtk/dcmpmap/dpmtypes.h"
+
+
+/** Class for managing the Parametric Map IOD attributes.
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapIOD : public DPMParametricMapBase
+{
+public:
+
+  /** Inner class that offers typed interface to bulk data.
+   */
+  template<typename PixelType>
+  class DCMTK_DCMPMAP_EXPORT Frames
+  {
+    public:
+
+      /// Binary pixel type
+      typedef PixelType pixel_type;
+
+      /** Method that adds a frame to the Parametric Map using the underlying
+       *  binary data type.
+       *  @param  data The frame data
+       *  @param  numPixels The number of pixels (rows * columns) of the frame
+       *  @param  perFrameInformation The per-frame functional groups applying for
+       *  @return EC_Normal if adding was successful, error otherwise
+       */
+      OFCondition addFrame(PixelType* data,
+                           const size_t numPixels,
+                           const OFVector<FGBase*>& perFrameInformation);
+
+      /** Type-specific getFrame() method that returns Float32, Uint16, or whatever
+       *  is used in this Parametric Map.
+       *  @return Pointer to typed pixel data
+       */
+      PixelType* getFrame(const size_t frameNumber);
+
+    private:
+
+      // Make sure the Parametric Map object (and no one else) can use the constructor below.
+      friend class DPMParametricMapIOD;
+
+      /** Create Frames object in DPMParametricMapIOD (see friend declaration above)
+       *  @param  map The map object that will contain the frames
+       */
+      Frames(DPMParametricMapIOD& map);
+
+      /// Reference to Parametric Map object in order to access its pixel data
+      DPMParametricMapIOD& m_Map;
+  };
+
+  /** Frames can contain Uint16, Sint16, Float32 or Float64 data, or nothing
+   *  at all (in that case OFCondition denotes a corresponding error)
+   */
+  typedef OFvariant
+  <
+    OFCondition,
+    Frames<Uint16>,
+    Frames<Sint16>,
+    Frames<Float32>,
+    Frames<Float64>
+  > FramesType;
+
+  /** Virtual Destructor, frees memory.
+   */
+  virtual ~DPMParametricMapIOD();
+
+  /** Create new Parametric Map object. Takes the minimum of required parameters.
+   *  Afterwards, additional setters() can be used to set optional data. Frames
+   *  and their related per-frame functional groups should be added using addFrame().
+   *  Shared functional groups should be added using addForAllFrames().
+   *  @param  modality The modality of this Parametric Map (series level attribute).
+   *          A list of Defined Terms can be found in the standard. Very often
+   *          "MR" is the right choice. Only if a mix of different modalities has been
+   *          use for creation "OT" should be used.
+   *  @param  seriesNumber A number identifying this series. If importPatientStudyFor()
+   *          is called later in order to put this Parametric Map into an existing Series,
+   *          the Series  Number will be taken over from the existing series instead.
+   *  @param  instanceNumber A number identifying this image
+   *  @param  rows The number of rows of all frames of the Parametric Map
+   *  @param  columns The number of columns of all frames of the Parametric Map
+   *  @param  equipmentInfo Information about the equipment creating thing Parametric Map
+   *  @param  contentIdentification General information about this content
+   *  @param  imageFlavor 3rd value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  derivedPixelContrast 4th value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE
+   *  @return Variant, either OFCondition with error code in case of error, Parametric
+   *          Map object in case of success
+   */
+  template<typename ImagePixel>
+  static OFvariant<OFCondition,DPMParametricMapIOD> create(const OFString& modality,
+                                                           const OFString& seriesNumber,
+                                                           const OFString& instanceNumber,
+                                                           const Uint16 rows,
+                                                           const Uint16 columns,
+                                                           const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                                                           const ContentIdentificationMacro& contentIdentification,
+                                                           const OFString& imageFlavor,
+                                                           const OFString& derivedPixelContrast,
+                                                           const DPMTypes::ContentQualification& contentQualification);
+
+  /** Indicates whether or not the image contains sufficiently recognizable visual
+   *  features to allow the image or a reconstruction from a set of images to
+   *  identify the patient.
+   *  @param  yesOrNo  Must be related "YES" or "NO" types
+   *  @return EC_Normal if setting was successful, error otherwise
+   */
+
+  virtual OFCondition setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo);
+
+  /** Add a functional group for all frames
+   *  @param  group The group to be added as shared functional group
+   *  @return EC_Normal if adding was successful, error otherwise
+   */
+  virtual OFCondition addForAllFrames(const FGBase& group);
+
+  // -------------------- loading and saving ---------------------
+
+  /** Load Parametric Map object from file
+   *  @param  filename The file to read from
+   *  @return Variant, either the resulting Parametric Map object in case of success,
+   *          an OFCondition error code otherwise
+   */
+  static OFvariant<OFCondition,DPMParametricMapIOD*> loadFile(const OFString& filename);
+
+  /** Load Parametric Map object from dataset object.
+   *  @param  dataset The dataset to read from
+   *  @return Variant, either the resulting Parametric Map object in case of success,
+   *          an OFCondition error code otherwise
+   */
+  static OFvariant<OFCondition,DPMParametricMapIOD*> loadDataset(DcmDataset& dataset);
+
+  /** Read Parametric Map attributes (all those handled by this class)
+   *  from given item. Reads attributes from base class DcmIODCommon before.
+   *  The current content is deleted even if the reading process fails.
+   *  If the log stream is set and valid the reason for any error might be
+   *  obtained from the error/warning output.
+   *  @param  dataset  Reference to DICOM dataset from which the document
+   *          should be read
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition read(DcmItem &dataset);
+
+  /** Write current Parametric Map's attributes to DICOM dataset.
+   *  @param  dataset Reference to DICOM dataset to which the current document
+   *          should be written. The dataset is not cleared before writing
+   *          to it!
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition write(DcmItem &dataset);
+
+  // -------------------- access ---------------------
+
+  /** Get Recognizable Visual Features
+   *  @return Returns related YES or NO data type
+   */
+  virtual DPMTypes::RecognizableVisibleFeatures getRecognizableVisualFeatures();
+
+  /** Get Content Qualification
+   *  @return Returns either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE or CQ_UNKNOWN
+   */
+  virtual DPMTypes::ContentQualification getContentQualification();
+
+  /** Get number of rows
+   *  @param  rows The number of rows (output)
+   *  @return EC_Normal if getting was successful, error otherwise
+   */
+  virtual OFCondition getRows(Uint16& rows);
+
+  /** Get number of cols
+   *  @param  cols The number of columns (output)
+   *  @return EC_Normal if getting was successful, error otherwise
+   */
+  virtual OFCondition getColumns(Uint16& cols);
+
+  /** Perform some basic checking. This method is also invoked when
+   *  writing the object to a DICOM dataset or file.
+   *  @return OFTrue, if no errors were found, OFFalse otherwise.
+   */
+  virtual OFBool check();
+
+  /** Get number of frames, based on the number of items in the shared
+   *  functional functional groups sequence (i.e.\ the attribute Number of
+   *  Frames) is not trusted after reading
+   *  @return The number of frames handled by this object
+   */
+  size_t getNumberOfFrames() const;
+
+  /** Get access to frame data
+   *  @return Class managing the frame data
+   */
+  FramesType getFrames();
+
+protected:
+
+  /** Write current generic Parametric Map's attributes to DICOM dataset, i.e.
+   *  those that are not directly pixel-related
+   *  @param  dataset Reference to DICOM dataset to which the current document
+   *          should be written. The dataset is not cleared before writing
+   *          to it.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition writeGeneric(DcmItem &dataset);
+
+  /** Read Parametric Map's generic (not directly pixel-data related) attributes from
+   *  DICOM dataset.
+   *  @param  dataset Reference to DICOM dataset to read from.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition readGeneric(DcmItem &dataset);
+
+  /** Decompress the given dataset if required. Only RLE compression is accepted
+   *  and decompressed by this tool. A warning is printed if the dataset has been compressed
+   *  before with another compression scheme and is handed into this method in uncompressed
+   *  format. Handing in any other compression but RLE will lead to an error.
+   *  @param  dset The dataset to be decompressed
+   *  @return EC_Normal if decompression worked (or dataset is already in uncompressed format)
+   *          IOD_EC_CannotDecompress otherwise
+   */
+  static OFCondition decompress(DcmDataset& dset);
+
+  /** Constructor
+   */
+  DPMParametricMapIOD();
+
+  /** Constructor, anonymous parameter is the image pixel module to be used
+   */
+  template<typename ImagePixel>
+  DPMParametricMapIOD(OFin_place_type_t(ImagePixel));
+
+private:
+
+  // Forward declarations
+  template<typename PixelType> class GetPixelDataVisitor;
+  struct SetImagePixelModuleVisitor;
+  struct WriteVisitor;
+  struct GetFramesVisitor;
+  struct ReadVisitor;
+  struct ReadFramesVisitor;
+
+  /** Initialize new Parametric Map object except directly pixel-related data
+   *  @param  modality The modality of this Parametric Map (series level attribute).
+   *          A list of Defined Terms can be found in the standard. Very often
+   *          "MR" is the right choice. Only if a mix of different modalities has been
+   *          use for creation "OT" should be used.
+   *  @param  seriesNumber A number identifying this series. If importPatientStudyFor()
+   *          is called later in order to put this Parametric Map into an existing Series,
+   *          the Series  Number will be taken over from the existing series instead.
+   *  @param  instanceNumber A number identifying this image
+   *  @param  equipmentInfo Information about the equipment creating thing Parametric Map
+   *  @param  contentIdentification General information about this content
+   *  @param  imageFlavor 3rd value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  derivedPixelContrast 4th value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE
+   *  @return EC_Normal in case of success, error otherwise
+   */
+  OFCondition init(const OFString& modality,
+                   const OFString& seriesNumber,
+                   const OFString& instanceNumber,
+                   const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                   const ContentIdentificationMacro& contentIdentification,
+                   const OFString& imageFlavor,
+                   const OFString& derivedPixelContrast,
+                   const DPMTypes::ContentQualification& contentQualification);
+
+
+  /// Parametric Map Image Module's Content Identification
+  ContentIdentificationMacro m_ContentIdentification;
+
+  /// Binary frame data
+  OFVector<DcmIODTypes::Frame*> m_Frames;
+
+};
+
+#endif // DPMPARAMETRICMAPIOD_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h
new file mode 100644 (file)
index 0000000..9bc952d
--- /dev/null
@@ -0,0 +1,137 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmpmap
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class managing various parametric myps-typical types
+ *
+ */
+
+#ifndef DPMTYPES_H
+#define DPMTYPES_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/oflog/oflog.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+
+// ----------------------------------------------------------------------------
+// Define the loggers for this module
+// ----------------------------------------------------------------------------
+
+extern DCMTK_DCMPMAP_EXPORT OFLogger DCM_dcmpmapLogger;
+
+#define DCMPMAP_TRACE(msg) OFLOG_TRACE(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_DEBUG(msg) OFLOG_DEBUG(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_INFO(msg)  OFLOG_INFO(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_WARN(msg)  OFLOG_WARN(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_ERROR(msg) OFLOG_ERROR(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_FATAL(msg) OFLOG_FATAL(DCM_dcmpmapLogger, msg)
+
+// ----------------------------------------------------------------------------
+// Error constants
+// ----------------------------------------------------------------------------
+
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidDimensions;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidAttributeValue;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidPixelInfo;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidPixelData;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_NoPixelData;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidSOPClass;
+
+/** General purpose class hiding global functions, constants and types in the
+ *  parametric map context from the global namespace.
+ */
+class DCMTK_DCMPMAP_EXPORT DPMTypes
+{
+  public:
+
+    /// Enum for attribute Content Qualification
+    enum ContentQualification
+    {
+      /// Unkonwn (e.g. not set)
+      CQ_UNKNOWN,
+      /// PRODUCT
+      CQ_PRODUCT,
+      /// RESEARCH
+      CQ_RESEARCH,
+      /// SERVICE
+      CQ_SERVICE
+    };
+
+    /// Enum for attribute Lossy Image Compression
+    enum LossyImageCompression
+    {
+      /// Unknown (e.g. not set)
+      COMP_UNKNOWN,
+      /// YES (lossy image compression used)
+      COMP_YES,
+      /// NO (no lossy image compression used)
+      COMP_NO
+    };
+
+
+    /// Enum for attribute Recognizable Visual Features
+    enum RecognizableVisibleFeatures
+    {
+      /// Unknown (e.g. not set)
+      RVF_UNKNOWN,
+      /// YES (recognizable visual features present)
+      RVF_YES,
+      /// NO (recognizable visual features not present)
+      RVF_NO
+    };
+
+    /** Convert Recognizable Visual Features enum to OFString
+     *  @param  rvf The enum to convert
+     *  @return String version of enum value
+     */
+    static OFString rvf2Str(const RecognizableVisibleFeatures rvf);
+
+    /** Convert OFString version of Recognizable Visual Features attribute
+     *  value to enum value
+     *  @param  rvf The OFString value to convert
+     *  @return The enum value of the string
+     */
+    static RecognizableVisibleFeatures str2Rvf(const OFString& rvf);
+
+    /** Convert Content Qualification enum to OFString
+     *  @param  cq The enum to convert
+     *  @return String version of enum value
+     */
+    static OFString cq2Str(const ContentQualification cq);
+
+    /** Convert OFString version of Content Qualification attribute
+     *  value to enum value
+     *  @param  cq The OFString value to convert
+     *  @return The enum value of the string
+     */
+    static ContentQualification str2Cq(const OFString& cq);
+
+    /** Check whether Recognizable Visual Features enum value is valid
+     *  @param  rvf Value to check
+     *  @return OFTrue if valid, OFFalse otherwise
+     */
+    static OFBool rvfValid(const RecognizableVisibleFeatures rvf);
+
+    /** Check whether Content Qualification enum value is valid
+     *  @param  cq Value to check
+     *  @return OFTrue if valid, OFFalse otherwise
+     */
+    static OFBool cqValid(const ContentQualification cq);
+
+};
+
+#endif // DPMTYPES_H
diff --git a/dcmpmap/libsrc/CMakeLists.txt b/dcmpmap/libsrc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8f48aa6
--- /dev/null
@@ -0,0 +1,5 @@
+# create library from source files
+DCMTK_ADD_LIBRARY(dcmpmap dpmtypes dpmmodparametricmapseries dpmmodparametricmapimage dpmparametricmapbase dpmparametricmapiod)
+
+DCMTK_TARGET_LINK_MODULES(dcmpmap dcmfg dcmiod dcmdata ofstd oflog)
+DCMTK_TARGET_LINK_LIBRARIES(dcmpmap ${ZLIB_LIBS} ${WIN32_STD_LIBRARIES})
diff --git a/dcmpmap/libsrc/Makefile.dep b/dcmpmap/libsrc/Makefile.dep
new file mode 100644 (file)
index 0000000..91f1805
--- /dev/null
@@ -0,0 +1,663 @@
+dpmmodparametricmapimage.o: dpmmodparametricmapimage.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h
+dpmmodparametricmapseries.o: dpmmodparametricmapseries.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+dpmparametricmapbase.o: dpmparametricmapbase.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
+dpmparametricmapiod.o: dpmparametricmapiod.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+dpmtypes.o: dpmtypes.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h
diff --git a/dcmpmap/libsrc/Makefile.in b/dcmpmap/libsrc/Makefile.in
new file mode 100644 (file)
index 0000000..5f72f74
--- /dev/null
@@ -0,0 +1,56 @@
+#
+#      Makefile for dcmpmap/libsrc
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+ofstddir = $(top_srcdir)/../ofstd
+oflogdir = $(top_srcdir)/../oflog
+dcmdatadir = $(top_srcdir)/../dcmdata
+dcmioddir = $(top_srcdir)/../dcmiod
+dcmfgdir = $(top_srcdir)/../dcmfg
+
+LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \
+       -I$(dcmdatadir)/include -I$(dcmioddir)/include \
+       -I$(dcmfgdir)/include
+
+LOCALDEFS =
+
+objs = dpmtypes.o dpmtypes.o dpmmodparametricmapseries.o dpmmodparametricmapimage.o dpmparametricmapbase.o dpmparametricmapiod.o
+
+
+library = libdcmpmap.$(LIBEXT)
+
+
+all: $(library)
+
+install: $(library)
+       $(configdir)/mkinstalldirs $(DESTDIR)$(libdir)
+       $(INSTALL_DATA) $(library) $(DESTDIR)$(libdir)/$(library)
+       $(RANLIB) $(DESTDIR)$(libdir)/$(library)
+
+
+$(library): $(objs)
+       $(AR) $(ARFLAGS) $@ $(objs)
+       $(RANLIB) $@
+
+
+clean:
+       rm -f $(objs) $(library) $(TRASH)
+
+distclean:
+       rm -f $(objs) $(library) $(DISTTRASH)
+
+
+dependencies:
+       $(CXX) -MM $(defines) $(includes) $(CPPFLAGS) $(CXXFLAGS) *.cc  > $(DEP)
+
+include $(DEP)
diff --git a/dcmpmap/libsrc/dpmmodparametricmapimage.cc b/dcmpmap/libsrc/dpmmodparametricmapimage.cc
new file mode 100644 (file)
index 0000000..a22883a
--- /dev/null
@@ -0,0 +1,289 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Image Module
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvrds.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h"
+
+const OFString DPMParametricMapImageModule::m_ModuleName = "DPMParametricMapImageModule";
+
+DPMParametricMapImageModule::DPMParametricMapImageModule()
+: IODModule()
+{
+  resetRules();
+}
+
+DPMParametricMapImageModule::DPMParametricMapImageModule(OFshared_ptr<DcmItem> item,
+                                                         OFshared_ptr<IODRules> rules)
+: IODModule(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+DPMParametricMapImageModule::~DPMParametricMapImageModule()
+{
+
+}
+
+OFString DPMParametricMapImageModule::getName() const
+{
+  return m_ModuleName;
+}
+
+void DPMParametricMapImageModule::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_ImageType, "2-n","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsStored, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_HighBit, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PresentationLUTShape, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_LossyImageCompression, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_LossyImageCompressionRatio, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_LossyImageCompressionMethod, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BurnedInAnnotation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RecognizableVisualFeatures, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ContentQualification, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+}
+
+OFCondition DPMParametricMapImageModule::read(DcmItem& source,
+                                              const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+
+  return EC_Normal;
+}
+
+OFCondition DPMParametricMapImageModule::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  result = IODComponent::write(destination);
+
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::getImageType(OFString &value,
+                                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ImageType, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getSamplesPerPixel(Uint16 &value,
+                                                            const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getPhotometricInterpretation(OFString &value,
+                                                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getBitsAllocated(Uint16 &value,
+                                                          const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getBitsStored(Uint16 &value,
+                                                       const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_BitsStored, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getHighBit(Uint16 &value,
+                                                    const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_HighBit, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getPresentationLUTShape(OFString &value,
+                                                                 const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PresentationLUTShape, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getLossyImageCompression(OFString &value,
+                                                                  const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompression, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getLossyImageCompressionRatio(OFString &value,
+                                                                       const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionRatio, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getLossyImageCompressionMethod(OFString &value,
+                                                                        const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionMethod, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getBurnedInAnnotation(OFString &value,
+                                                               const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_BurnedInAnnotation, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getRecognizableVisualFeatures(OFString &value,
+                                                                       const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_RecognizableVisualFeatures, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getContentQualification(OFString &value,
+                                                                 const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ContentQualification, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::setImageType(const OFString &value,
+                                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "2-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ImageType, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setSamplesPerPixel(const Uint16 &value,
+                                                            const OFBool checkValue)
+{
+  if (checkValue && (value != 1))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value);
+}
+
+OFCondition DPMParametricMapImageModule::setPhotometricInterpretation(const OFString &value,
+                                                                      const OFBool checkValue)
+{
+  if (checkValue && (value != "MONOCHROME2"))
+    return IOD_EC_InvalidElementValue;
+
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setBitsAllocated(const Uint16 &value,
+                                                          const OFBool checkValue)
+{
+  if (checkValue && (value != 16) && (value != 32) && (value != 64))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_BitsAllocated, value);
+}
+
+OFCondition DPMParametricMapImageModule::setBitsStored(const Uint16 &value,
+                                                       const OFBool checkValue)
+{
+  if (checkValue && (value != 16) && (value != 32) && (value != 64))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_BitsStored, value);
+}
+
+OFCondition DPMParametricMapImageModule::setHighBit(const Uint16 &value,
+                                                    const OFBool checkValue)
+{
+  if (checkValue && (value != 15))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_HighBit, value);
+}
+
+OFCondition DPMParametricMapImageModule::setPresentationLUTShape(const OFString &value,
+                                                                 const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_PresentationLUTShape, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setLossyImageCompression(const OFString &value,
+                                                                  const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompression, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setLossyImageCompressionRatio(const OFString &value,
+                                                                       const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionRatio, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setLossyImageCompressionMethod(const OFString &value,
+                                                                        const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionMethod, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setBurnedInAnnotation(const OFString &value,
+                                                               const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_BurnedInAnnotation, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setRecognizableVisualFeatures(const OFString &value,
+                                                                       const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_RecognizableVisualFeatures, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setContentQualification(const OFString &value,
+                                                                 const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ContentQualification, value);
+  return result;
+}
diff --git a/dcmpmap/libsrc/dpmmodparametricmapseries.cc b/dcmpmap/libsrc/dpmmodparametricmapseries.cc
new file mode 100644 (file)
index 0000000..cf65edc
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Series Module
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvris.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h"
+
+const OFString DPMParametricMapSeriesModule::m_ModuleName = "DPMParametricMapSeriesModule";
+
+DPMParametricMapSeriesModule::DPMParametricMapSeriesModule()
+: IODModule()
+{
+  resetRules();
+}
+
+DPMParametricMapSeriesModule::DPMParametricMapSeriesModule(OFshared_ptr<DcmItem> item,
+                                                           OFshared_ptr<IODRules> rules)
+: IODModule(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+DPMParametricMapSeriesModule::~DPMParametricMapSeriesModule()
+{
+
+}
+
+OFString DPMParametricMapSeriesModule::getName() const
+{
+  return m_ModuleName;
+}
+
+void DPMParametricMapSeriesModule::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_Modality, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SeriesNumber, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ReferencedPerformedProcedureStepSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+}
+
+OFCondition DPMParametricMapSeriesModule::read(DcmItem& source,
+                                               const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+  DcmIODUtil::readSubSequence(source, DCM_ReferencedPerformedProcedureStepSequence, m_ReferencedPerformedProcedureStepSequence, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence));
+
+  return EC_Normal;
+}
+
+OFCondition DPMParametricMapSeriesModule::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  if(SOPInstanceReferenceMacro* pReferencedPerformedProcedureStepSequence = getReferencedPerformedProcedureStepSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ReferencedPerformedProcedureStepSequence, *pReferencedPerformedProcedureStepSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence));
+  result = IODComponent::write(destination);
+
+  return result;
+}
+
+OFCondition DPMParametricMapSeriesModule::getModality(OFString &value,
+                                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_Modality, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapSeriesModule::getSeriesNumber(OFString &value,
+                                                          const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_SeriesNumber, *m_Item, value, pos);
+}
+
+SOPInstanceReferenceMacro* DPMParametricMapSeriesModule::getReferencedPerformedProcedureStepSequence()
+{
+  return m_ReferencedPerformedProcedureStepSequence.empty() ? OFnullptr : &*m_ReferencedPerformedProcedureStepSequence.begin();
+}
+
+OFVector<SOPInstanceReferenceMacro>& DPMParametricMapSeriesModule::getEntireReferencedPerformedProcedureStepSequence()
+{
+  return m_ReferencedPerformedProcedureStepSequence;
+}
+
+OFCondition DPMParametricMapSeriesModule::setModality(const OFString &value,
+                                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_Modality, value);
+  return result;
+}
+
+OFCondition DPMParametricMapSeriesModule::setSeriesNumber(const OFString &value,
+                                                          const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_SeriesNumber, value);
+  return result;
+}
diff --git a/dcmpmap/libsrc/dpmparametricmapbase.cc b/dcmpmap/libsrc/dpmparametricmapbase.cc
new file mode 100644 (file)
index 0000000..a1dc110
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Generated base class representing the Parametric Map IOD
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmtypes.h"
+#include "dcmtk/dcmpmap/dpmparametricmapbase.h"
+
+
+DPMParametricMapBase::DPMParametricMapBase()
+: DPMParametricMapBase::IODImage()
+, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+{
+}
+
+
+template<typename ImagePixel>
+DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(ImagePixel))
+: DPMParametricMapBase::IODImage(OFin_place<ImagePixel>)
+, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+{
+}
+
+
+DPMParametricMapBase::~DPMParametricMapBase()
+{
+}
+
+
+void DPMParametricMapBase::clearData()
+{
+  DPMParametricMapBase::IODImage::clearData();
+}
+
+
+OFCondition DPMParametricMapBase::read(DcmItem& dataset)
+{
+  OFString sopClass;
+  if(DcmIODUtil::checkSOPClass(&dataset, UID_ParametricMapStorage, sopClass).bad())
+  {
+    DCMPMAP_ERROR("Given file does not seem to be a Parametric Map storage object since SOP class is: " << sopClass);
+    return IOD_EC_WrongSOPClass;
+  }
+
+  DPMParametricMapBase::IODImage::read(dataset);
+  m_DPMParametricMapSeriesModule.read(dataset);
+  m_IODEnhGeneralEquipmentModule.read(dataset);
+  m_DPMParametricMapImageModule.read(dataset);
+  m_IODMultiFrameFGModule.read(dataset);
+  m_FGInterface.read(dataset);
+  m_IODMultiframeDimensionModule.read(dataset);
+  m_IODAcquisitionContextModule.read(dataset);
+  m_IODCommonInstanceReferenceModule.read(dataset);
+
+  return EC_Normal;
+}
+
+
+OFCondition DPMParametricMapBase::saveFile(const OFString& filename,
+                                           const E_TransferSyntax writeXfer)
+{
+  DcmFileFormat dcmff;
+  OFCondition result;
+  if((result = write(*dcmff.getDataset())).good())
+    result = dcmff.saveFile(filename.c_str(), writeXfer);
+  if(result.bad())
+    DCMPMAP_ERROR("Cannot save Parametric Map object to file " << filename << ": " << result.text());
+  return result;
+}
+
+
+OFCondition DPMParametricMapBase::writeDataset(DcmItem& dataset)
+{
+  return write(dataset);
+}
+
+
+OFCondition DPMParametricMapBase::write(DcmItem& dataset)
+{
+  if(!check())
+    return IOD_EC_InvalidObject;
+
+  OFCondition result;
+  if((result = m_DPMParametricMapSeriesModule.write(dataset)).good())
+  if((result = m_IODEnhGeneralEquipmentModule.write(dataset)).good())
+  if((result = m_DPMParametricMapImageModule.write(dataset)).good())
+  if((result = m_IODMultiFrameFGModule.write(dataset)).good())
+  if((result = m_FGInterface.write(dataset)).good())
+  if((result = m_IODMultiframeDimensionModule.write(dataset)).good())
+  if((result = m_IODAcquisitionContextModule.write(dataset)).good())
+  if((result = m_IODCommonInstanceReferenceModule.write(dataset)).good())
+    return DPMParametricMapBase::IODImage::write(dataset);
+
+  return result;
+}
+
+
+OFBool DPMParametricMapBase::check()
+{
+  return m_FGInterface.check();
+}
+
+
+FGInterface& DPMParametricMapBase::getFunctionalGroups()
+{
+  return m_FGInterface;
+}
+
+
+IODPatientModule& DPMParametricMapBase::getIODPatientModule()
+{
+  return DPMParametricMapBase::IODImage::getPatient();
+}
+
+
+IODGeneralStudyModule& DPMParametricMapBase::getIODGeneralStudyModule()
+{
+  return DPMParametricMapBase::IODImage::getStudy();
+}
+
+
+IODPatientStudyModule& DPMParametricMapBase::getIODPatientStudyModule()
+{
+  return DPMParametricMapBase::IODImage::getPatientStudy();
+}
+
+
+IODGeneralSeriesModule& DPMParametricMapBase::getIODGeneralSeriesModule()
+{
+  return DPMParametricMapBase::IODImage::getSeries();
+}
+
+
+DPMParametricMapSeriesModule& DPMParametricMapBase::getDPMParametricMapSeriesModule()
+{
+  return m_DPMParametricMapSeriesModule;
+}
+
+
+IODGeneralEquipmentModule& DPMParametricMapBase::getIODGeneralEquipmentModule()
+{
+  return DPMParametricMapBase::IODImage::getEquipment();
+}
+
+
+IODEnhGeneralEquipmentModule& DPMParametricMapBase::getIODEnhGeneralEquipmentModule()
+{
+  return m_IODEnhGeneralEquipmentModule;
+}
+
+
+IODGeneralImageModule& DPMParametricMapBase::getIODGeneralImageModule()
+{
+  return DPMParametricMapBase::IODImage::getGeneralImage();
+}
+
+
+DPMParametricMapImageModule& DPMParametricMapBase::getDPMParametricMapImageModule()
+{
+  return m_DPMParametricMapImageModule;
+}
+
+
+IODMultiFrameFGModule& DPMParametricMapBase::getIODMultiFrameFGModule()
+{
+  return m_IODMultiFrameFGModule;
+}
+
+
+IODMultiframeDimensionModule& DPMParametricMapBase::getIODMultiframeDimensionModule()
+{
+  return m_IODMultiframeDimensionModule;
+}
+
+
+IODAcquisitionContextModule& DPMParametricMapBase::getIODAcquisitionContextModule()
+{
+  return m_IODAcquisitionContextModule;
+}
+
+
+IODCommonInstanceReferenceModule& DPMParametricMapBase::getIODCommonInstanceReferenceModule()
+{
+  return m_IODCommonInstanceReferenceModule;
+}
+
+
+IODSOPCommonModule& DPMParametricMapBase::getIODSOPCommonModule()
+{
+  return DPMParametricMapBase::IODImage::getSOPCommon();
+}
+
+
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule<Uint16>));
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule<Sint16>));
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODFloatingPointImagePixelModule));
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODDoubleFloatingPointImagePixelModule));
diff --git a/dcmpmap/libsrc/dpmparametricmapiod.cc b/dcmpmap/libsrc/dpmparametricmapiod.cc
new file mode 100644 (file)
index 0000000..cbbeab2
--- /dev/null
@@ -0,0 +1,1063 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Class for managing the Parametric Map IOD
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmpmap/dpmparametricmapiod.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+// ----------------------------------------------------------------------------
+// Class SetImagePixelModuleVisitor:
+// Class for setting Image Pixel Module attributes based on pixel data type
+// ----------------------------------------------------------------------------
+
+struct DPMParametricMapIOD::SetImagePixelModuleVisitor
+{
+  SetImagePixelModuleVisitor(const Uint16 r,
+                             const Uint16 c)
+  : rows(r)
+  , cols(c)
+  {
+
+  }
+
+  template<typename T>
+  OFCondition operator()( T& t )
+  {
+    if ( (rows == 0) || (cols == 0) )
+    {
+      DCMPMAP_ERROR("Rows/Cols must be non-zero but are : " << rows << "/" << cols);
+      return DPM_InvalidDimensions;
+    }
+
+    t.setRows(rows);
+    t.setColumns(cols);
+    setSpecificValues(t);
+
+    return EC_Normal;
+  }
+
+  template<typename T>
+  void setSpecificValues(IODImagePixelModule<T>& p)
+  {
+    p.setBitsAllocated(16);
+    p.setBitsStored(16);
+    p.setHighBit(15);
+    p.setSamplesPerPixel(1);
+    p.setPhotometricInterpretation("MONOCHROME2");
+    p.setPixelRepresentation(OFis_signed<T>::value ? 1 : 0);
+  }
+
+  void setSpecificValues(IODFloatingPointImagePixelModule& p)
+  {
+    // Avoid compiler warning about unused parameter "p"
+    (void)p;
+    // No specific values for 32 bit floating point data to be set
+  }
+
+  void setSpecificValues(IODDoubleFloatingPointImagePixelModule& p)
+  {
+    // Avoid compiler warning about unused parameter "p"
+    (void)p;
+    // No specific values for 64 bit floating point data to be set
+  }
+  // Members
+  const Uint16 rows;
+  const Uint16 cols;
+};
+
+
+struct DPMParametricMapIOD::ReadVisitor
+{
+  // Inner class that implements the specializations for different
+  // pixel data types
+  template<typename T>
+  class DcmElementOf;
+
+  ReadVisitor(DcmItem& srcItem,
+              DPMParametricMapIOD& m)
+  : item(srcItem)
+  , map(m)
+  {
+    // Nothing to do
+  }
+
+  OFCondition operator()(OFmonostate)
+  {
+    return DPM_InvalidPixelData;
+  }
+
+  template<typename ImagePixel>
+  OFCondition operator()(ImagePixel& pixel)
+  {
+    OFCondition result = map.readGeneric(item);
+    if (result.good())
+    {
+      Uint16 rows, cols;
+      size_t numFrames, numBytesFrame;
+      rows = cols = numFrames = numBytesFrame = 0;
+      map.getRows(rows);
+      map.getColumns(cols);
+      numFrames = map.getFunctionalGroups().getNumberOfFrames();
+      if (!rows || !cols || !numFrames)
+      {
+        DCMPMAP_ERROR("Rows (" << rows << "), Columns (" << cols << ") and Number of Frames (" << numFrames << ") must not be 0");
+        return DPM_InvalidPixelInfo;
+      }
+      numBytesFrame = rows * cols * sizeof(typename ImagePixel::value_type);
+      result = readSpecific(pixel, numFrames, numBytesFrame);
+    }
+    return result;
+  }
+
+  template<typename T>
+  OFCondition readSpecific(IODImagePixelModule<T>& p,
+                           const Uint16 numFrames,
+                           const size_t numBytesFrame)
+  {
+    // Avoid compiler warning about unused parameter
+    (void)p;
+    unsigned long numTotalWords = 0;
+    const Uint16* pixData = NULL;
+    if (item.findAndGetUint16Array(DCM_PixelData, pixData, &numTotalWords).good())
+    {
+      if (numTotalWords == numBytesFrame * numFrames / 2 /* we compare to num words not num bytes */)
+      {
+        for (Uint16 n = 0; n < numFrames; n++)
+        {
+          DcmIODTypes::Frame* f = new DcmIODTypes::Frame;
+          if (f)
+          {
+            f->length = numBytesFrame;
+            f->pixData = new Uint8[f->length];
+            memcpy(f->pixData, pixData + n*numBytesFrame/2, numBytesFrame);
+            map.m_Frames.push_back(f);
+          }
+          else
+          {
+            return EC_MemoryExhausted;
+          }
+        }
+      }
+      else
+      {
+        DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 2 << " pixels but Pixel Data has " << numTotalWords << " pixels");
+        return DPM_InvalidPixelInfo;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("No Pixel Data element found");
+      return DPM_NoPixelData;
+    }
+    return EC_Normal;
+  }
+
+  OFCondition readSpecific(IODFloatingPointImagePixelModule& p,
+                           const Uint16 numFrames,
+                           const size_t numBytesFrame)
+  {
+    // Avoid compiler warning on unused parameter
+    (void)p;
+    unsigned long numTotalFloats = 0;
+    const Float32* pixData = NULL;
+    if (item.findAndGetFloat32Array(DCM_FloatPixelData, pixData, &numTotalFloats).good())
+    {
+      if (numTotalFloats == numBytesFrame * numFrames / 4 /* we compare to 32 bit floats not bytes */)
+      {
+        for (Uint16 n=0; n < numFrames; n++)
+        {
+          DcmIODTypes::Frame* f = new DcmIODTypes::Frame;
+          if (f)
+          {
+            f->length = numBytesFrame;
+            f->pixData = new Uint8[f->length];
+            memcpy(f->pixData, pixData + n*numBytesFrame/4, numBytesFrame);
+            map.m_Frames.push_back(f);
+          }
+          else
+          {
+            return EC_MemoryExhausted;
+          }
+        }
+      }
+      else
+      {
+        DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 4 << " pixels but Float Pixel Data has " << numTotalFloats << " pixels");
+        return DPM_InvalidPixelInfo;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("No Float Pixel Data element found");
+      return DPM_NoPixelData;
+    }
+    return EC_Normal;
+  }
+
+  OFCondition readSpecific(IODDoubleFloatingPointImagePixelModule& p,
+                    const Uint16 numFrames,
+                    const size_t numBytesFrame)
+  {
+    // Avoid compiler warning on unused parameter
+    (void)p;
+    unsigned long numTotalFloats = 0;
+    const Float64* pixData = NULL;
+    if (item.findAndGetFloat64Array(DCM_DoubleFloatPixelData, pixData, &numTotalFloats).good())
+    {
+      if (numTotalFloats == numBytesFrame * numFrames / 8 /* we compare to 64 bit floats not bytes */)
+      {
+        for (Uint16 n=0; n < numFrames; n++)
+        {
+          DcmIODTypes::Frame* f = new DcmIODTypes::Frame;
+          if (f)
+          {
+            f->length = numBytesFrame;
+            f->pixData = new Uint8[f->length];
+            memcpy(f->pixData, pixData + n*numBytesFrame/8, numBytesFrame);
+            map.m_Frames.push_back(f);
+          }
+          else
+          {
+            return EC_MemoryExhausted;
+          }
+        }
+      }
+      else
+      {
+        DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 8 << " pixels but Double Float Pixel Data has " << numTotalFloats << " pixels");
+        return DPM_InvalidPixelInfo;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("No Double Float Pixel Data element found");
+      return DPM_NoPixelData;
+    }
+    return EC_Normal;
+  }
+
+  // Members, i.e. parameters to operator()
+  DcmItem& item;
+  DPMParametricMapIOD& map;
+};
+
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:
+// Class for adding DICOM pixel data bulk element based on type pixel data type
+// ----------------------------------------------------------------------------
+
+// Generic implementation, template specialization is done in inner
+// DcmElementOf class
+struct DPMParametricMapIOD::WriteVisitor
+{
+  // Inner class that implements the specializations for different
+  // pixel data types
+  template<typename T>
+  class DcmElementOf;
+
+  // Constructor, sets parameters the visitor works on in operator()
+  WriteVisitor(DcmItem& i,
+               DPMParametricMapIOD& m)
+  : item(i)
+  , map(m)
+  {
+    // Nothing else to do
+  }
+
+  //
+  OFCondition operator()(OFmonostate)
+  {
+    DCMPMAP_ERROR("Could not write pixel data: Invalid pixel data type, only 16 bit integer as well as 32 and 64 bit float data are handled");
+    return DPM_NoPixelData;
+  }
+
+  template<typename ImagePixel>
+  OFCondition operator()(ImagePixel& pixel)
+  {
+    // Avoid compiler warning about unused parameter "pixel"
+    (void)pixel;
+    // Input data is checked before
+    Uint16 rows = 0;
+    Uint16 cols = 0;
+    map.getRows(rows);
+    map.getColumns(cols);
+    const size_t numFrames = map.m_Frames.size();
+    const size_t numBytesFrame = map.m_Frames[0]->length;
+    const size_t numPixelsFrame = rows * cols;
+    // Creates the correct pixel data element, based on the image pixel module used.
+    // I.e. For integer data, the "Pixel Data" element is used, i.e. the DcmElement type
+    // instantiated by DcmElementOf is of DCMTK type DcmOtherByteOtherWord while for
+    // IODFloatingPointImagePixelModule which has floating point pixel data, DcmFloatingPointSingle
+    // is used.
+    DcmElementOf<ImagePixel> element;
+    // copy all frames into map's frame structure
+    if (OFTypename ImagePixel::value_type* ptr = element.getData(numBytesFrame * numFrames))
+    {
+      for (size_t f = 0; f < numFrames; ++f)
+      {
+        memcpy(ptr, map.m_Frames[f]->pixData, numBytesFrame);
+        ptr += numPixelsFrame;
+      }
+      OFCondition result = element.put(item);
+      // Write generic (i.e. non pixel data-specific attributes)
+      return result.good() ? map.writeGeneric(item) : result;
+    }
+    return EC_MemoryExhausted;
+  }
+
+  // Members, i.e. parameters to operator()
+  DcmItem& item;
+  DPMParametricMapIOD& map;
+};
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:DcmElementOf<IODImagePixelModule<PixelType> >:
+// Offers creation and insertion for Pixel Data element as used for
+// int-based pixel data. So far, Uint8, Sint8, Uint16 and Sint16 pixel
+// data is supported (relates to OB/OW data type for DICOM Pixel data)
+// ----------------------------------------------------------------------------
+
+template<typename PixelType>
+class DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<PixelType> >
+{
+public:
+
+  DcmElementOf()
+  : m_pElement(new DcmOtherByteOtherWord(DCM_PixelData))
+  {
+    // Nothing else to do
+  }
+
+  PixelType* getData(const size_t count);
+
+  OFCondition put(DcmItem& item)
+  {
+    OFCondition result = item.insert(m_pElement.get(), OFTrue);
+    if (result.good())
+      m_pElement.release();
+    return result;
+  }
+
+private:
+
+  OFunique_ptr<DcmOtherByteOtherWord> m_pElement;
+};
+
+
+template<>
+Uint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Uint8> >::getData(const size_t size)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OB).good())
+  {
+    Uint8* result;
+    if (m_pElement->createUint8Array(size, result).good())
+      return result;
+  }
+  return OFnullptr;
+}
+
+
+template<>
+Sint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Sint8> >::getData(const size_t size)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OB).good())
+  {
+    Uint8* result;
+    if (m_pElement->createUint8Array(size, result).good())
+      return OFreinterpret_cast(Sint8*, result);
+  }
+  return OFnullptr;
+}
+
+
+template<>
+Uint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Uint16> >::getData(const size_t size /* num total pixels */)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OW).good())
+  {
+    Uint16* result;
+    if (m_pElement->createUint16Array(size / 2, result).good())
+      return result;
+  }
+  return OFnullptr;
+}
+
+
+template<>
+Sint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Sint16> >::getData(const size_t size)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OW).good())
+  {
+    Uint16* result;
+    if (m_pElement->createUint16Array(size / 2, result).good())
+      return OFreinterpret_cast(Sint16*, result);
+  }
+  return OFnullptr;
+}
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:DcmElementOf<IODImagePixelModule<IODFloatingPointImagePixelModule> >:
+// Offers creation and insertion for Pixel Data element as used for
+// 32 bit float-based pixel data as used in Parametric Map IOD
+// ----------------------------------------------------------------------------
+
+template<>
+class DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODFloatingPointImagePixelModule>
+{
+public:
+  DcmElementOf()
+  : m_pElement(new DcmFloatingPointSingleAlloc(DCM_FloatPixelData))
+  {
+
+  }
+
+  Float32* getData(const size_t size)
+  {
+    if (m_pElement)
+    {
+      Float32* result;
+      if (m_pElement->createFloat32Array(size, result).good())
+        return result;
+    }
+    return OFnullptr;
+  }
+
+  OFCondition put(DcmItem& item)
+  {
+    OFCondition result = item.insert(m_pElement.get(), OFTrue);
+    if (result.good())
+      m_pElement.release();
+    return result;
+  }
+
+private:
+
+  struct DcmFloatingPointSingleAlloc : DcmFloatingPointSingle
+  {
+    DcmFloatingPointSingleAlloc(const DcmTagKey& tag)
+    : DcmFloatingPointSingle(tag)
+    {
+
+    }
+
+    OFCondition createFloat32Array(const size_t size,
+                                   Float32*& result)
+    {
+       OFCondition status = createEmptyValue(size);
+       result = OFreinterpret_cast(Float32*, getValue());
+       return status;
+    }
+  };
+
+  OFunique_ptr<DcmFloatingPointSingleAlloc> m_pElement;
+};
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:DcmElementOf<IODImagePixelModule<IODFloatingPointImagePixelModule> >:
+// Offers creation and insertion for Pixel Data element as used for
+// 64 bit float-based pixel data as used in Parametric Map IOD.
+// ----------------------------------------------------------------------------
+
+template<>
+class DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODDoubleFloatingPointImagePixelModule>
+{
+public:
+  DcmElementOf()
+  : m_pElement(new DcmFloatingPointDoubleAlloc(DCM_DoubleFloatPixelData))
+  {
+
+  }
+
+  Float64* getData(const size_t size)
+  {
+    if (m_pElement)
+    {
+      Float64* result;
+      if (m_pElement->createFloat64Array(size, result).good())
+        return result;
+    }
+    return OFnullptr;
+  }
+
+  OFCondition put(DcmItem& item)
+  {
+    OFCondition result = item.insert(m_pElement.get(), OFTrue);
+    if (result.good())
+      m_pElement.release();
+    return result;
+  }
+
+private:
+
+  struct DcmFloatingPointDoubleAlloc : DcmFloatingPointDouble
+  {
+    DcmFloatingPointDoubleAlloc(const DcmTagKey& tag)
+    : DcmFloatingPointDouble(tag)
+    {
+
+    }
+
+    OFCondition createFloat64Array(const size_t size, Float64*& result)
+    {
+       OFCondition status = createEmptyValue(size);
+       result = OFreinterpret_cast(Float64*, getValue());
+       return status;
+    }
+  };
+
+  OFunique_ptr<DcmFloatingPointDoubleAlloc> m_pElement;
+};
+
+
+// Helper "class" that returns Frames offering API to the pixel's frame bulk
+// data by offering the dedicated data type, e.g. Float32 instead of the
+// internally stored generic Uint8 array.
+//
+struct DPMParametricMapIOD::GetFramesVisitor
+{
+  GetFramesVisitor(DPMParametricMapIOD& m)
+  : map(m)
+  {
+
+  }
+
+  OFCondition operator()(OFmonostate)
+  {
+    return DPM_InvalidPixelData;
+  }
+
+  template<typename ImagePixel>
+  Frames<OFTypename ImagePixel::value_type> operator()(ImagePixel&)
+  {
+    return Frames<OFTypename ImagePixel::value_type>(map);
+  }
+
+  DPMParametricMapIOD& map;
+};
+
+
+/** Helper "class" that returns Frames offering API to the pixel's frame bulk
+ *  data by offering the dedicated data type, e.g. Float32 instead of the
+ *  internally stored generic Uint8 array.
+ */
+struct DPMParametricMapIOD::ReadFramesVisitor
+{
+  ReadFramesVisitor(DcmItem& i,
+                    DPMParametricMapIOD& m)
+  : map(m), item(i)
+  {
+    // Nothing else to do
+  }
+
+  OFCondition operator()(OFmonostate)
+  {
+    return DPM_InvalidPixelData;
+  }
+
+  template<typename ImagePixel>
+  OFCondition operator()(ImagePixel&)
+  {
+    return Frames<OFTypename ImagePixel::value_type>(map);
+  }
+
+  // Members, i.e. parameters to operator()
+  DPMParametricMapIOD& map;
+  DcmItem& item;
+};
+
+
+
+template<typename PixelType>
+DPMParametricMapIOD::Frames<PixelType>::Frames(DPMParametricMapIOD& map)
+: m_Map(map)
+{
+
+}
+
+
+template<typename PixelType>
+OFCondition DPMParametricMapIOD::Frames<PixelType>::addFrame(PixelType* data,
+                                                             const size_t numPixels,
+                                                             const OFVector<FGBase*>& perFrameInformation)
+{
+  OFCondition result;
+  if (data && numPixels)
+  {
+    if (!perFrameInformation.empty())
+    {
+      OFunique_ptr<DcmIODTypes::Frame> f(new DcmIODTypes::Frame);
+      if (f)
+      {
+        f->length = numPixels * sizeof(PixelType);
+        f->pixData = new Uint8[f->length];
+        memcpy(f->pixData, data, f->length);
+        m_Map.m_Frames.push_back(f.release());
+        OFVector<FGBase*>::const_iterator fg = perFrameInformation.begin();
+        while ( result.good() && (fg != perFrameInformation.end()) )
+        {
+          result = m_Map.m_FGInterface.addPerFrame(m_Map.m_Frames.size(), **fg);
+          if (result.bad())
+          {
+            DCMPMAP_ERROR("Could not add functional group: " << DcmFGTypes::FGType2OFString((*fg)->getType()));
+            break;
+          }
+          ++fg;
+        }
+      }
+    }
+  }
+  // Clean up if necessary
+  if (result.bad())
+    m_Map.m_FGInterface.deleteFrame(m_Map.m_Frames.size());
+  return result;
+}
+
+
+template<typename PixelType>
+PixelType* DPMParametricMapIOD::Frames<PixelType>::getFrame(const size_t frameNumber)
+{
+  if (frameNumber < m_Map.m_Frames.size())
+  {
+    return (PixelType*)(m_Map.m_Frames[frameNumber]->pixData);
+  }
+  return NULL;
+}
+
+
+// Protected constructor
+DPMParametricMapIOD::DPMParametricMapIOD()
+: DPMParametricMapBase()
+, m_ContentIdentification()
+, m_Frames()
+{
+}
+
+
+// Protected constructor
+template<typename ImagePixel>
+DPMParametricMapIOD::DPMParametricMapIOD(OFin_place_type_t(ImagePixel))
+: DPMParametricMapBase(OFin_place<ImagePixel>)
+, m_ContentIdentification()
+, m_Frames()
+{
+}
+
+
+// Static method used to create a new Parametric Map IOD object
+template<typename ImagePixel>
+OFvariant<OFCondition,DPMParametricMapIOD> DPMParametricMapIOD::create(const OFString& modality,
+                                                                       const OFString& seriesNumber,
+                                                                       const OFString& instanceNumber,
+                                                                       const Uint16 rows,
+                                                                       const Uint16 columns,
+                                                                       const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                                                                       const ContentIdentificationMacro& contentIdentification,
+                                                                       const OFString& imageFlavor,
+                                                                       const OFString& derivedPixelContrast,
+                                                                       const DPMTypes::ContentQualification& contentQualification)
+{
+  DPMParametricMapIOD map(OFin_place<ImagePixel>);
+
+  OFCondition status = SetImagePixelModuleVisitor(rows, columns)(*OFget<ImagePixel>(&map.getImagePixel()));
+  if (status.bad())
+    return status;
+
+  status = map.init
+  (
+    modality,
+    seriesNumber,
+    instanceNumber,
+    equipmentInfo,
+    contentIdentification,
+    imageFlavor,
+    derivedPixelContrast,
+    contentQualification
+  );
+
+  if(status.bad())
+    return status;
+
+  return map;
+}
+
+
+OFCondition DPMParametricMapIOD::init(const OFString& modality,
+                                      const OFString& seriesNumber,
+                                      const OFString& instanceNumber,
+                                      const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                                      const ContentIdentificationMacro& contentIdentification,
+                                      const OFString& imageFlavor,
+                                      const OFString& derivedPixelContrast,
+                                      const DPMTypes::ContentQualification& contentQualification)
+{
+  if (!equipmentInfo.isDataComplete())
+  {
+    DCMPMAP_ERROR("Equipment info incomplete");
+    return DPM_InvalidAttributeValue;
+  }
+
+  OFCondition status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check();
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Content identification is invalid: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check();
+  if (imageFlavor.empty() || derivedPixelContrast.empty())
+  {
+    DCMPMAP_ERROR
+    (
+      "Image Type value 3 (Image Flavor) and 4 (Derived Pixel Contrast) must be set but are "
+      << imageFlavor << "/" << derivedPixelContrast
+    );
+    return DPM_InvalidAttributeValue;
+  }
+
+  if (!DPMTypes::cqValid(contentQualification))
+  {
+    DCMPMAP_ERROR("Content Qualification not set");
+    return DPM_InvalidAttributeValue;
+  }
+
+  // All data is valid, copy to object
+  status = getIODEnhGeneralEquipmentModule().set(equipmentInfo);
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Error setting equipment info: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  m_ContentIdentification = contentIdentification;
+  OFStringStream ss;
+  ss << "DERIVED\\PRIMARY\\" << imageFlavor << "\\" << derivedPixelContrast;
+  OFSTRINGSTREAM_GETOFSTRING(ss, imgType);
+
+  status = getIODGeneralImageModule().setImageType(imgType);
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Error setting Image Type: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = m_DPMParametricMapSeriesModule.setModality(modality);
+  if (status.bad())
+  {
+
+    DCMPMAP_ERROR("Could not set modality value \"" << modality << "\": " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = m_DPMParametricMapSeriesModule.setSeriesNumber(seriesNumber);
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Could not set Series Number: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = m_IODMultiFrameFGModule.setInstanceNumber(instanceNumber);
+  if (status.bad())
+    return status;
+
+  m_DPMParametricMapImageModule.setContentQualification(DPMTypes::cq2Str(contentQualification));
+  m_DPMParametricMapImageModule.setRecognizableVisualFeatures("YES");
+  m_DPMParametricMapImageModule.setBurnedInAnnotation("NO");
+  m_DPMParametricMapImageModule.setLossyImageCompression("00");
+  m_DPMParametricMapImageModule.setPresentationLUTShape("IDENTITY");
+  getSOPCommon().setSOPClassUID(UID_ParametricMapStorage);
+  DcmIODUtil::setContentDateAndTimeNow(m_IODMultiFrameFGModule);
+
+  return EC_Normal;
+}
+
+
+OFCondition DPMParametricMapIOD::read(DcmItem& dataset)
+{
+  return OFvisit<OFCondition>(ReadVisitor(dataset,*this),getImagePixel());
+
+}
+
+
+OFCondition DPMParametricMapIOD::write(DcmItem& dataset)
+{
+  if (!check())
+    return DPM_InvalidAttributeValue;
+  return OFvisit<OFCondition>(WriteVisitor(dataset,*this),getImagePixel());
+}
+
+
+OFvariant<OFCondition,DPMParametricMapIOD*> DPMParametricMapIOD::loadDataset(DcmDataset& dataset)
+{
+  OFString sopClass;
+  DPMParametricMapIOD *map = NULL;
+  if (dataset.findAndGetOFStringArray(DCM_SOPClassUID, sopClass).good())
+  {
+    if (sopClass == UID_ParametricMapStorage)
+    {
+      DcmElement *elem = NULL;
+      if (dataset.findAndGetElement(DCM_PixelData, elem).good())
+      {
+        Uint16 pr = 0;
+        if (dataset.findAndGetUint16(DCM_PixelRepresentation, pr).good())
+        {
+          if (pr == 0)
+          {
+            map = new DPMParametricMapIOD(OFin_place<IODImagePixelModule<Uint16> >);
+          }
+          else
+          {
+            map = new DPMParametricMapIOD(OFin_place<IODImagePixelModule<Sint16> >);
+          }
+        }
+        else
+        {
+          DCMPMAP_WARN("Pixel Data element found but no Pixel Representation set, assuming 16 bit unsigned integer data");
+          map = new DPMParametricMapIOD(OFin_place<IODImagePixelModule<Uint16> >);
+        }
+      }
+      else if (dataset.findAndGetElement(DCM_FloatPixelData, elem).good())
+      {
+        map = new DPMParametricMapIOD(OFin_place<IODFloatingPointImagePixelModule>);
+      }
+      else if (dataset.findAndGetElement(DCM_DoubleFloatPixelData, elem).good())
+      {
+        map = new DPMParametricMapIOD(OFin_place<IODDoubleFloatingPointImagePixelModule>);
+      }
+      else
+      {
+        return DPM_NoPixelData;
+      }
+      if (map == NULL)
+      {
+        return EC_MemoryExhausted;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("Invalid SOP Class: " << sopClass << ", only Parametric Map Storage (1.2.840.10008.5.1.4.1.1.30) supported");
+      return DPM_InvalidSOPClass;
+    }
+  }
+  OFCondition result = OFvisit<OFCondition>(ReadVisitor(dataset, *map), map->getImagePixel());
+  if (result.good())
+    return map;
+  else
+    return result;
+}
+
+
+OFvariant<OFCondition,DPMParametricMapIOD*> DPMParametricMapIOD::loadFile(const OFString& filename)
+{
+  DcmFileFormat dcmff;
+  OFCondition cond = dcmff.loadFile(filename.c_str());
+  OFvariant<OFCondition,DPMParametricMapIOD*> result;
+  if (cond.good())
+  {
+     result = loadDataset( *(dcmff.getDataset()) );
+     return result;
+  }
+  else
+  {
+    return cond;
+  }
+}
+
+
+DPMParametricMapIOD::~DPMParametricMapIOD()
+{
+  DcmIODUtil::freeContainer(m_Frames);
+  // nothing else to do for now
+}
+
+
+OFCondition DPMParametricMapIOD::addForAllFrames(const FGBase& group)
+{
+  return m_FGInterface.addShared(group);
+}
+
+
+OFBool DPMParametricMapIOD::check()
+{
+  OFString val;
+  m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val);
+  if (DPMTypes::rvfValid(DPMTypes::str2Rvf(val)))
+  {
+    m_DPMParametricMapImageModule.getContentQualification(val);
+    if (DPMTypes::cqValid(DPMTypes::str2Cq(val)))
+    {
+      if (!m_Frames.empty())
+      {
+        return OFTrue;
+      }
+      else
+      {
+        DCMPMAP_ERROR("No frame data defined in Parametric Map");
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("Invalid value for Recognizable Visual Features: " << val);
+    }
+  }
+  else
+  {
+    DCMPMAP_ERROR("Invalid value for Content Qualification" << val);
+  }
+  return OFFalse;
+}
+
+
+OFCondition DPMParametricMapIOD::getColumns(Uint16& cols)
+{
+  return getImagePixel().getColumns(cols);
+}
+
+
+OFCondition DPMParametricMapIOD::getRows(Uint16& rows)
+{
+  return getImagePixel().getRows(rows);
+}
+
+
+size_t DPMParametricMapIOD::getNumberOfFrames() const
+{
+  return OFconst_cast(DPMParametricMapIOD*,this)->m_FGInterface.getNumberOfFrames();
+}
+
+
+OFCondition DPMParametricMapIOD::setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo)
+{
+  return DPMTypes::rvfValid(yesOrNo)
+  ?
+    m_DPMParametricMapImageModule.setRecognizableVisualFeatures(DPMTypes::rvf2Str(yesOrNo))
+  :
+    DPM_InvalidAttributeValue
+  ;
+}
+
+
+OFCondition DPMParametricMapIOD::readGeneric(DcmItem& dataset)
+{
+  OFCondition result = DPMParametricMapBase::read(dataset);
+  if (result.good())
+    result = m_ContentIdentification.read(dataset);
+  return result;
+}
+
+
+OFCondition DPMParametricMapIOD::writeGeneric(DcmItem& dataset)
+{
+  getFrameOfReference().ensureFrameOfReferenceUID();
+  m_IODMultiFrameFGModule.setNumberOfFrames(m_Frames.size());
+  OFCondition result = m_ContentIdentification.write(dataset);
+  if (result.good())
+  {
+    result = DPMParametricMapBase::write(dataset);
+  }
+  return result;
+}
+
+
+DPMTypes::ContentQualification DPMParametricMapIOD::getContentQualification()
+{
+  OFString val;
+  m_DPMParametricMapImageModule.getContentQualification(val);
+  return DPMTypes::str2Cq(val);
+}
+
+
+DPMTypes::RecognizableVisibleFeatures DPMParametricMapIOD::getRecognizableVisualFeatures()
+{
+  OFString val;
+  DPMParametricMapIOD::m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val);
+  return DPMTypes::str2Rvf(val);
+}
+
+
+DPMParametricMapIOD::FramesType DPMParametricMapIOD::getFrames()
+{
+  return OFvisit<FramesType>(GetFramesVisitor(*this),getImagePixel());
+}
+
+
+OFCondition DPMParametricMapIOD::decompress(DcmDataset& dset)
+{
+  DcmXfer xfer = dset.getOriginalXfer();
+  OFCondition result;
+  // If the original transfer syntax could have been lossy, print warning
+  if (dset.hasRepresentation(EXS_LittleEndianExplicit, NULL))
+  {
+    if ( xfer.isEncapsulated() && (xfer.getXfer() != EXS_RLELossless) && (xfer.getXfer() != EXS_DeflatedLittleEndianExplicit) )
+    {
+      DCMPMAP_WARN("Dataset has been compressed using a (possibly) lossy compression scheme (ignored)");
+    }
+  }
+  // If the original transfer is encapsulated and we do not already have an uncompressed version, decompress or reject the file
+  else if (xfer.isEncapsulated())
+  {
+    // RLE compression is fine (truly lossless). Deflated is handled internally by DCMTK.
+    if (xfer.getXfer() == EXS_RLELossless)
+    {
+      DCMPMAP_DEBUG("DICOM file is RLE-compressed, converting to uncompressed transfer syntax first");
+      result = DcmIODUtil::decompress(dset);
+    }
+    else // We do not accept any transfer syntax that could be lossy compressed
+    {
+      DCMPMAP_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Parametric Map objects!");
+      result = IOD_EC_CannotDecompress;
+    }
+  }
+  return result;
+}
+
+// Explicit instantiations using all permitted Parametric Map data types
+template class DPMParametricMapIOD::Frames<Uint16>;
+template class DPMParametricMapIOD::Frames<Sint16>;
+template class DPMParametricMapIOD::Frames<Float32>;
+template class DPMParametricMapIOD::Frames<Float64>;
+
+// Helper macro to not to write the same thing multiple times
+#define INSTANTIATE_CREATE(T) template DCMTK_DCMPMAP_EXPORT OFvariant<OFCondition,DPMParametricMapIOD>\
+DPMParametricMapIOD::create<T >(const OFString& modality,\
+                                const OFString& seriesNumber,\
+                                const OFString& instanceNumber,\
+                                const Uint16 rows,\
+                                const Uint16 columns,\
+                                const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,\
+                                const ContentIdentificationMacro& contentIdentification,\
+                                const OFString& imageFlavor,\
+                                const OFString& derivedPixelContrast,\
+                                const DPMTypes::ContentQualification& contentQualification)
+
+// Instantiate all four permitted create() methods
+INSTANTIATE_CREATE(IODImagePixelModule<Uint16>);
+INSTANTIATE_CREATE(IODImagePixelModule<Sint16>);
+INSTANTIATE_CREATE(IODFloatingPointImagePixelModule);
+INSTANTIATE_CREATE(IODDoubleFloatingPointImagePixelModule);
diff --git a/dcmpmap/libsrc/dpmtypes.cc b/dcmpmap/libsrc/dpmtypes.cc
new file mode 100644 (file)
index 0000000..cce411c
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmpmap
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class for managing common paramatric map specific types.
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcerror.h"
+#include "dcmtk/dcmpmap/dpmtypes.h"
+
+OFLogger DCM_dcmpmapLogger = OFLog::getLogger("dcmtk.dcmpmap");
+
+/*---------------------------------*
+ *  constant definitions
+ *---------------------------------*/
+
+// conditions
+makeOFConditionConst(DPM_InvalidDimensions,      OFM_dcmpmap, 1, OF_error, "Invalid Dimensions");
+makeOFConditionConst(DPM_InvalidAttributeValue,  OFM_dcmpmap, 2, OF_error, "Invalid Attribute Value");
+makeOFConditionConst(DPM_InvalidPixelInfo,       OFM_dcmpmap, 3, OF_error, "Invalid information in pixel data or related attributes");
+makeOFConditionConst(DPM_InvalidPixelData,       OFM_dcmpmap, 4, OF_error, "Invalid pixel data");
+makeOFConditionConst(DPM_NoPixelData,            OFM_dcmpmap, 5, OF_error, "No pixel data found");
+makeOFConditionConst(DPM_InvalidSOPClass,        OFM_dcmpmap, 6, OF_error, "SOP Class not supported");
+
+OFString DPMTypes::rvf2Str(const RecognizableVisibleFeatures rvf)
+{
+  switch (rvf)
+  {
+    case RVF_NO: return "NO";
+    case RVF_YES: return "YES";
+    default: return "";
+  }
+}
+
+DPMTypes::RecognizableVisibleFeatures DPMTypes::str2Rvf(const OFString& rvf)
+{
+  if (rvf == "NO")
+    return RVF_NO;
+  if (rvf == "YES")
+    return RVF_YES;
+  else
+    return RVF_UNKNOWN;
+}
+
+
+OFString DPMTypes::cq2Str(const DPMTypes::ContentQualification cq)
+{
+   switch (cq)
+  {
+    case CQ_PRODUCT:  return "PRODUCT";
+    case CQ_RESEARCH: return "RESEARCH";
+    case CQ_SERVICE:  return "SERVICE";
+    case CQ_UNKNOWN:  return "";
+  }
+  return "";
+}
+
+
+DPMTypes::ContentQualification DPMTypes::str2Cq(const OFString& cq)
+{
+  if (cq == "PRODUCT")
+    return CQ_PRODUCT;
+  if (cq == "RESEARCH")
+    return CQ_RESEARCH;
+  if (cq == "SERVICE")
+    return CQ_SERVICE;
+  else
+    return CQ_UNKNOWN;
+}
+
+
+
+OFBool DPMTypes::cqValid(const DPMTypes::ContentQualification cq)
+{
+   switch (cq)
+  {
+    case CQ_PRODUCT:
+    case CQ_RESEARCH:
+    case CQ_SERVICE:  return OFTrue;
+    case CQ_UNKNOWN:  return OFFalse;
+  }
+  return OFFalse;
+}
+
+
+OFBool DPMTypes::rvfValid(const DPMTypes::RecognizableVisibleFeatures rvf)
+{
+  switch (rvf)
+  {
+    case RVF_NO: return OFTrue;
+    case RVF_YES: return OFTrue;
+    case RVF_UNKNOWN: return OFFalse;
+  }
+  return OFFalse;
+}
+
diff --git a/dcmpmap/tests/Makefile.dep b/dcmpmap/tests/Makefile.dep
new file mode 100644 (file)
index 0000000..c2b87ff
--- /dev/null
@@ -0,0 +1,548 @@
+dump_pmp.o: dump_pmp.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h
+make_pmp.o: make_pmp.cc ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h
+rw_pmp.o: rw_pmp.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h
+tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h
diff --git a/dcmpmap/tests/Makefile.in b/dcmpmap/tests/Makefile.in
new file mode 100644 (file)
index 0000000..ff99234
--- /dev/null
@@ -0,0 +1,29 @@
+#
+#      Makefile for dcmpmap/tests
+#
+
+@SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+check:
+
+check-exhaustive:
+
+install:
+
+clean:
+       rm -f $(TRASH)
+
+distclean:
+       rm -f $(DISTTRASH)
+
+dependencies:
index 96bd1468ec96d02bf3e57a4f7ba56eebbad72bbc..bccc9efc695013da9ac7741d1b057dfe35219ba9 100644 (file)
@@ -564,9 +564,13 @@ static OFCondition updateJobList(
     {
       currentName = dp->d_name;
 #endif
-      if ((prefix == currentName.substr(0, prefixSize)) &&
-          (currentName.size() > postfixSize) &&
-          (postfix == currentName.substr(currentName.size()-postfixSize)))
+      if
+      (
+        currentName.size() > (prefixSize + postfixSize) &&
+        prefix == currentName.substr(0, prefixSize) &&
+        postfix == currentName.substr(currentName.size()-postfixSize) &&
+        currentName.find_first_not_of("1234567890",prefixSize) == (currentName.size() - postfixSize)
+      )
       {
         // name matches pattern
         jobName = spoolFolder;
index 5f81d37efba7bec8b94485ee3e578c9c480deeac..652931cb54a7b699d0e39cbea00353cb4f0faf9e 100644 (file)
@@ -1359,16 +1359,23 @@ OFBool DVInterface::createIndexCache()
                             DVPSInstanceType type = DVPSI_image;
                             if (record.Modality != NULL)
                             {
-                                if (strcmp(record.Modality, "PR") == 0)
+                                if (DSRTypes::sopClassUIDToDocumentType(record.SOPClassUID) != DSRTypes::DT_invalid)
+                                    type = DVPSI_structuredReport;
+                                else if (strcmp(record.Modality, "PR") == 0)
                                     type = DVPSI_presentationState;
-                                if (strcmp(record.Modality, "SR") == 0)
+                                else if (strcmp(record.Modality, "SR") == 0)
                                     type = DVPSI_structuredReport;
                                 else if (strcmp(record.Modality, "HC") == 0)
                                     type =DVPSI_hardcopyGrayscale;
                                 else if (strcmp(record.Modality, "STORED_PRINT") == 0)
                                     type = DVPSI_storedPrint;
                             }
-                            series->List.addItem(record.SOPInstanceUID, counter, record.hstat, type, record.ImageSize, record.filename);
+                            series->List.addItem(record.SOPInstanceUID,
+                                                 counter,
+                                                 OFstatic_cast(DVIFhierarchyStatus, record.hstat),
+                                                 type,
+                                                 record.ImageSize,
+                                                 record.filename);
                             if (series->Type == DVPSI_image)
                                 series->Type = type;                // series contains only one type of instances
                         }
@@ -1953,7 +1960,9 @@ OFCondition DVInterface::instanceReviewed(int pos)
     lockDatabase();
     OFBool wasNew = newInstancesReceived();
     if (pHandle == NULL) return EC_IllegalCall;
+    pHandle->DB_unlock();
     OFCondition result = pHandle->instanceReviewed(pos);
+    pHandle->DB_lock(OFFalse);
     if (!wasNew) resetDatabaseReferenceTime();
     releaseDatabase();
     return result;
index 735a613dfefc35999a45b1e7b56d50868c960b07..252ba2f91290ac02e93e027550a08131c0462069 100644 (file)
@@ -60,7 +60,7 @@ OFCondition DVPSHelper::loadFileFormat(const char *filename,
                                        DcmFileFormat *&fileformat)
 {
     fileformat = new DcmFileFormat;
-    OFCondition result =  fileformat->loadFile(filename);
+    OFCondition result =  fileformat->loadFile(OFFilename(filename,OFTrue));
 
     if (result.bad())
     {
index 8150a6b5667400f255515dcd24c2e7d18094d2cb..47f8e763f04ec10e9f69aa2dc5c7b76840f5cbca 100644 (file)
@@ -767,6 +767,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
index 956c1d9361069a899ccda12fef29901cebb675e3..c2997011a0373a1308f3549e0cd1893ac38a2bc9 100644 (file)
@@ -123,6 +123,28 @@ enum DB_KEY_CLASS
 #define SIZEOF_IDXRECORD        (sizeof (IdxRecord))
 #define SIZEOF_STUDYDESC        (sizeof (StudyDescRecord) * MAX_MAX_STUDIES)
 
+struct DCMTK_DCMQRDB_EXPORT DB_SerializedTagKey
+{
+    inline DB_SerializedTagKey() {}
+    inline DB_SerializedTagKey(const DcmTagKey& rhs) { *this = rhs; }
+    inline DB_SerializedTagKey& operator=(const DcmTagKey& tk) { key[0] = tk.getGroup(); key[1] = tk.getElement(); return *this; }
+    inline operator DcmTagKey() const { return DcmTagKey( key[0], key[1] ); }
+    inline bool operator==(const DB_SerializedTagKey& rhs) const { return key[0] == rhs.key[0] && key[1] == rhs.key[1]; }
+    Uint16 key[2];
+};
+
+struct DCMTK_DCMQRDB_EXPORT DB_SerializedCharPtr
+{
+    inline DB_SerializedCharPtr(char* p) { ptr.p = p; }
+    inline DB_SerializedCharPtr& operator=(char* p) { ptr.p = p; return *this; }
+    inline operator char*() const { return ptr.p; }
+    union
+    {
+        char* p;
+        Uint64 placeholder;
+    } ptr ;
+};
+
 /** this class provides a primitive interface for handling a flat DICOM element,
  *  similar to DcmElement, but only for use within the database module
  */
@@ -133,13 +155,13 @@ public:
     DB_SmallDcmElmt();
 
     /// pointer to the value field
-    char* PValueField ;
+    DB_SerializedCharPtr PValueField ;
 
     /// value length in bytes
     Uint32 ValueLength ;
 
     /// attribute tag
-    DcmTagKey XTag ;
+    DB_SerializedTagKey XTag ;
 
 private:
     /// private undefined copy constructor
@@ -240,20 +262,20 @@ struct DCMTK_DCMQRDB_EXPORT StudyDescRecord
     char StudyInstanceUID [UI_MAX_LENGTH+1] ;
 
     /// combined size (in bytes) of all images of this study in the database
-    long StudySize ;
+    Uint32 StudySize ;
 
     /// timestamp for last update of this study. Format: output of time(2) converted to double.
     double LastRecordedDate ;
 
     /// number of images of this study in the database
-    int NumberofRegistratedImages ;
+    Uint32 NumberofRegistratedImages ;
 };
 
 struct DCMTK_DCMQRDB_EXPORT ImagesofStudyArray
 {
-    int idxCounter ;
+    Uint32 idxCounter ;
     double RecordedDate ;
-    long ImageSize ;
+    Uint32 ImageSize ;
 };
 
 
@@ -375,7 +397,7 @@ struct DCMTK_DCMQRDB_EXPORT IdxRecord
     char    PerformingPhysicianName         [PN_MAX_LENGTH+1] ;
     char    PresentationLabel               [CS_LABEL_MAX_LENGTH+1] ;
 
-    DVIFhierarchyStatus hstat;
+    char    hstat;
 
     // Not related to any particular DICOM attribute !
     char    InstanceDescription             [DESCRIPTION_MAX_LENGTH+1] ;
index f9700e931baa25fc8ec717bb98da192eead39e9a..f8b17858e9816ce8ed58761c849547a5c76569e3 100644 (file)
@@ -118,7 +118,8 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
@@ -128,16 +129,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -151,17 +153,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -183,9 +185,13 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtssrs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \
  ../include/dcmtk/dcmrt/seq/drtcbars.h \
  ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
  ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \
@@ -194,8 +200,9 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
  ../include/dcmtk/dcmrt/seq/drtmacds.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+ ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \
  ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \
  ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
  ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
@@ -225,10 +232,11 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
  ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \
  ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \
  ../include/dcmtk/dcmrt/seq/drtfgss.h \
@@ -238,6 +246,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttscds.h \
  ../include/dcmtk/dcmrt/seq/drttsmds.h ../include/dcmtk/dcmrt/drtionpl.h \
  ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \
+ ../include/dcmtk/dcmrt/seq/drtddps.h \
  ../include/dcmtk/dcmrt/seq/drtiblds.h \
  ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
  ../include/dcmtk/dcmrt/seq/drticps.h \
@@ -258,6 +267,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttsibs.h \
  ../include/dcmtk/dcmrt/seq/drtas7.h \
  ../include/dcmtk/dcmrt/seq/drtbldls.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
  ../include/dcmtk/dcmrt/seq/drticpds.h \
  ../include/dcmtk/dcmrt/seq/drtcpas.h \
  ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
index 6f902871df554fa7cfac17b45f86a399c78a028b..4614ee430e108c6b864b3015731a4786f9188ffd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDoseIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,7 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdvhs.h"   // for DVHSequence
@@ -31,6 +32,7 @@
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfes.h"    // for FrameExtractionSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtiis.h"    // for IconImageSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
@@ -38,7 +40,9 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtmls.h"    // for ModalityLUTSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -55,7 +59,6 @@
 #include "dcmtk/dcmrt/seq/drtrwvms.h"  // for RealWorldValueMappingSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrfors.h"  // for ReferencedFrameOfReferenceSequence
-#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
 #include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
-#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtssrs.h"   // for StructureSetROISequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTDoseIOD
@@ -349,6 +355,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -489,6 +502,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const;
 
+    /** get ColorSpace (0028,2002)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const;
+
     /** get Columns (0028,0011)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1)
@@ -579,13 +599,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
-    /** get DerivationDescription (0008,2111)
-     *  @param  value  reference to variable in which the value should be stored
-     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
-
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -870,6 +883,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -925,6 +945,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1092,6 +1147,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1099,6 +1161,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1106,6 +1175,20 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1120,6 +1203,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1183,6 +1273,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1329,6 +1426,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PresentationLUTShape (2050,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1630,6 +1734,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1679,6 +1790,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getStereoPairsPresent(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StructureSetDate (3006,0008)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1846,6 +1978,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1942,6 +2086,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTFrameExtractionSequence &getFrameExtractionSequence() const
         { return FrameExtractionSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -2026,6 +2182,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
     /** get ModalityLUTSequence (0028,3000)
      *  @return reference to sequence element
      */
@@ -2038,6 +2206,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTModalityLUTSequence &getModalityLUTSequence() const
         { return ModalityLUTSequence; }
 
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -2230,18 +2410,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const
         { return ReferencedFrameOfReferenceSequence; }
 
-    /** get ReferencedImageSequence (0008,1140)
-     *  @return reference to sequence element
-     */
-    DRTReferencedImageSequence &getReferencedImageSequence()
-        { return ReferencedImageSequence; }
-
-    /** get ReferencedImageSequence (0008,1140)
-     *  @return const reference to sequence element
-     */
-    const DRTReferencedImageSequence &getReferencedImageSequence() const
-        { return ReferencedImageSequence; }
-
     /** get ReferencedInstanceSequence (0008,114a)
      *  @return reference to sequence element
      */
@@ -2410,17 +2578,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
-    /** get SourceImageSequence (0008,2112)
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
      *  @return reference to sequence element
      */
-    DRTSourceImageSequence &getSourceImageSequence()
-        { return SourceImageSequence; }
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
 
-    /** get SourceImageSequence (0008,2112)
+    /** get StrainStockSequence (0010,0216)
      *  @return const reference to sequence element
      */
-    const DRTSourceImageSequence &getSourceImageSequence() const
-        { return SourceImageSequence; }
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
 
     /** get StructureSetROISequence (3006,0020)
      *  @return reference to sequence element
@@ -2446,6 +2638,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -2504,6 +2708,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2644,6 +2855,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set ColorSpace (0028,2002)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue);
+
     /** set Columns (0028,0011)
      *  @param  value  value to be set (should be valid for this VR)
      *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -2714,13 +2932,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
-    /** set DerivationDescription (0008,2111)
-     *  @param  value  value to be set (single value only) or "" for no value
-     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
-
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2945,6 +3156,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2987,6 +3205,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3127,6 +3366,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -3134,6 +3380,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -3141,6 +3394,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3155,6 +3415,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3211,6 +3478,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -3330,6 +3604,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PresentationLUTShape (2050,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3575,6 +3856,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -3617,6 +3905,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setStereoPairsPresent(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StructureSetDate (3006,0008)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -3744,6 +4053,12 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -3774,6 +4089,16 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -3786,6 +4111,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -3861,8 +4190,26 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -3907,6 +4254,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -3964,6 +4313,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -3994,18 +4345,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmTime AcquisitionTime;
     /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3
     DcmDateTime AcquisitionDateTime;
-    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
-    DRTReferencedImageSequence ReferencedImageSequence;
-    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
-    DcmShortText DerivationDescription;
-    // DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
-    // - also defined in: RTDoseModule
-    // DRTDerivationCodeSequence DerivationCodeSequence;
-    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
-    DRTSourceImageSequence SourceImageSequence;
-    // ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
-    // - also defined in: RTDoseModule
-    // DRTReferencedInstanceSequence ReferencedInstanceSequence;
     /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3
     DcmIntegerString ImagesInAcquisition;
     /// ImageComments (0020,4000) vr=LT, vm=1, type=3
@@ -4068,8 +4407,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     // PixelRepresentation (0028,0103) vr=US, vm=1, type=1
     // - also defined in: RTDoseModule
     // DcmUnsignedShort PixelRepresentation;
-    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
-    DcmPixelData PixelData;
     /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C
     DcmUnsignedShort PlanarConfiguration;
     /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C
@@ -4092,6 +4429,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmOtherByteOtherWord BluePaletteColorLookupTableData;
     /// ICCProfile (0028,2000) vr=OB, vm=1, type=3
     DcmOtherByteOtherWord ICCProfile;
+    /// ColorSpace (0028,2002) vr=CS, vm=1, type=3
+    DcmCodeString ColorSpace;
+    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
+    DcmPixelData PixelData;
     /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C
     DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL;
     /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C
@@ -4201,10 +4542,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     /// TissueHeterogeneityCorrection (3004,0014) vr=CS, vm=1-3, type=3
     DcmCodeString TissueHeterogeneityCorrection;
     /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
-    /// - also defined in: GeneralImageModule
     DRTDerivationCodeSequence DerivationCodeSequence;
     /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
-    /// - also defined in: GeneralImageModule
     DRTReferencedInstanceSequence ReferencedInstanceSequence;
 
     // --- RTDVHModule (U) ---
@@ -4272,6 +4611,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index 3b7b1549a86f82bed7ff9034d0f5ee7bc0671318..1edb0e5bd7fe464f4c676610f21d1d501b3d2f6c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTImageIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,7 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcbars.h"  // for ContrastBolusAdministrationRouteSequence
 #include "dcmtk/dcmrt/seq/drtbas.h"    // for ContrastBolusAgentSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
@@ -35,6 +36,7 @@
 #include "dcmtk/dcmrt/seq/drtes.h"     // for ExposureSequence
 #include "dcmtk/dcmrt/seq/drtfms.h"    // for FluenceMapSequence
 #include "dcmtk/dcmrt/seq/drtfes.h"    // for FrameExtractionSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtiis.h"    // for IconImageSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtmls.h"    // for ModalityLUTSequence
 #include "dcmtk/dcmrt/seq/drtmacds.h"  // for MultiplexedAudioChannelsDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
 #include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 #include "dcmtk/dcmrt/seq/drtvls.h"    // for VOILUTSequence
 
 
@@ -186,6 +195,14 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFBool isFrameOfReferenceModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether ContrastBolusModule (C) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -337,6 +354,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -512,6 +536,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const;
 
+    /** get ColorSpace (0028,2002)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const;
+
     /** get Columns (0028,0011)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1)
@@ -741,6 +772,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const;
 
+    /** get ExposureTime (0018,1150)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getExposureTime(OFString &value, const signed long pos = 0) const;
+
+    /** get ExposureTime (0018,1150)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getExposureTime(Sint32 &value, const unsigned long pos = 0) const;
+
+    /** get ExposureTimeInms (0018,9328)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getExposureTimeInms(Float64 &value, const unsigned long pos = 0) const;
+
     /** get FractionNumber (3002,0029)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1039,6 +1091,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1094,6 +1153,55 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
+    /** get MetersetExposure (3002,0032)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMetersetExposure(OFString &value, const signed long pos = 0) const;
+
+    /** get MetersetExposure (3002,0032)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMetersetExposure(Float64 &value, const unsigned long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1164,6 +1272,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1171,6 +1286,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1178,6 +1300,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1192,6 +1328,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1262,6 +1405,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientSupportAngle (300a,0122)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1423,6 +1573,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPreferredPlaybackSequencing(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PresentationLUTShape (2050,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1848,6 +2005,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1946,6 +2110,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getStopTrim(Sint32 &value, const unsigned long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -2243,6 +2428,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContrastBolusAdministrationRouteSequence (0018,0014)
      *  @return reference to sequence element
      */
@@ -2387,6 +2584,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTFrameExtractionSequence &getFrameExtractionSequence() const
         { return FrameExtractionSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -2471,6 +2680,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
     /** get ModalityLUTSequence (0028,3000)
      *  @return reference to sequence element
      */
@@ -2495,6 +2716,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTMultiplexedAudioChannelsDescriptionCodeSequence &getMultiplexedAudioChannelsDescriptionCodeSequence() const
         { return MultiplexedAudioChannelsDescriptionCodeSequence; }
 
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -2795,6 +3028,54 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTSourceImageSequence &getSourceImageSequence() const
         { return SourceImageSequence; }
 
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -2807,6 +3088,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
     /** get VOILUTSequence (0028,3010)
      *  @return reference to sequence element
      */
@@ -2884,6 +3177,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3045,6 +3345,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set ColorSpace (0028,2002)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue);
+
     /** set Columns (0028,0011)
      *  @param  value  value to be set (should be valid for this VR)
      *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -3213,6 +3520,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue);
 
+    /** set ExposureTime (0018,1150)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setExposureTime(const OFString &value, const OFBool check = OFTrue);
+
+    /** set ExposureTimeInms (0018,9328)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setExposureTimeInms(const Float64 value, const unsigned long pos = 0);
+
     /** set FractionNumber (3002,0029)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -3423,6 +3744,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3465,6 +3793,34 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MetersetExposure (3002,0032)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMetersetExposure(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3528,6 +3884,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -3535,6 +3898,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -3542,6 +3912,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3556,6 +3933,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3619,6 +4003,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientSupportAngle (300a,0122)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -3759,6 +4150,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPreferredPlaybackSequencing(const Uint16 value, const unsigned long pos = 0);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PresentationLUTShape (2050,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -4095,6 +4493,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -4158,6 +4563,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setStopTrim(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -4330,6 +4756,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -4360,6 +4792,16 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -4372,6 +4814,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -4447,8 +4893,26 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -4493,6 +4957,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -4550,6 +5016,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -4581,16 +5049,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmTime AcquisitionTime;
     /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3
     DcmDateTime AcquisitionDateTime;
-    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
-    DRTReferencedImageSequence ReferencedImageSequence;
-    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
-    DcmShortText DerivationDescription;
-    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
-    DRTDerivationCodeSequence DerivationCodeSequence;
-    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
-    DRTSourceImageSequence SourceImageSequence;
-    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
-    DRTReferencedInstanceSequence ReferencedInstanceSequence;
     /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3
     DcmIntegerString ImagesInAcquisition;
     /// ImageComments (0020,4000) vr=LT, vm=1, type=3
@@ -4616,6 +5074,21 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     /// RealWorldValueMappingSequence (0040,9096) vr=SQ, vm=1, type=3
     DRTRealWorldValueMappingSequence RealWorldValueMappingSequence;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- ImagePixelModule (M) ---
 
     // SamplesPerPixel (0028,0002) vr=US, vm=1, type=1
@@ -4640,8 +5113,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     // PixelRepresentation (0028,0103) vr=US, vm=1, type=1
     // - also defined in: RTImageModule
     // DcmUnsignedShort PixelRepresentation;
-    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
-    DcmPixelData PixelData;
     /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C
     DcmUnsignedShort PlanarConfiguration;
     /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C
@@ -4664,6 +5135,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmOtherByteOtherWord BluePaletteColorLookupTableData;
     /// ICCProfile (0028,2000) vr=OB, vm=1, type=3
     DcmOtherByteOtherWord ICCProfile;
+    /// ColorSpace (0028,2002) vr=CS, vm=1, type=3
+    DcmCodeString ColorSpace;
+    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
+    DcmPixelData PixelData;
     /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C
     DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL;
     /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C
@@ -4840,6 +5315,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmDecimalString IsocenterPosition;
     /// PatientPosition (0018,5100) vr=CS, vm=1, type=1C
     DcmCodeString PatientPosition;
+    /// ExposureTime (0018,1150) vr=IS, vm=1, type=3
+    DcmIntegerString ExposureTime;
+    /// ExposureTimeInms (0018,9328) vr=FD, vm=1, type=3
+    DcmFloatingPointDouble ExposureTimeInms;
+    /// MetersetExposure (3002,0032) vr=DS, vm=1, type=3
+    DcmDecimalString MetersetExposure;
 
     // --- ModalityLUTModule (U) ---
 
@@ -4898,6 +5379,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index 889397d402d37cf9e8792bc0996c794f59a01eaa..2f0f7a01d556a5a8d5730f233a355cc4b6cf2413 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drtdrs.h"    // for DoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgs.h"    // for FractionGroupSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtibs.h"    // for IonBeamSequence
 #include "dcmtk/dcmrt/seq/drtitts.h"   // for IonToleranceTableSequence
@@ -38,6 +41,8 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -51,6 +56,8 @@
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrds.h"    // for ReferencedDoseSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTIonPlanIOD
@@ -218,6 +231,14 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -256,6 +277,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -403,6 +431,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -417,6 +452,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const;
 
+    /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const;
+
     /** get FrameOfReferenceUID (0020,0052)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -501,6 +543,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -522,6 +571,41 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -578,6 +662,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -585,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -592,6 +690,20 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -606,6 +718,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -662,6 +781,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -746,6 +872,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PrescriptionDescription (300a,000e)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -956,6 +1089,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -991,6 +1131,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1116,6 +1277,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1152,6 +1325,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1200,6 +1385,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTFractionGroupSequence &getFractionGroupSequence() const
         { return FractionGroupSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1296,6 +1493,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1452,6 +1673,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTReferencedDoseSequence &getReferencedDoseSequence() const
         { return ReferencedDoseSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1584,6 +1829,66 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1596,6 +1901,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1626,6 +1943,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1773,6 +2097,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1787,6 +2118,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue);
 
+    /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=16
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0);
+
     /** set FrameOfReferenceUID (0020,0052)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -1864,6 +2202,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1885,6 +2230,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1941,6 +2307,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1948,6 +2321,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1955,6 +2335,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1969,6 +2356,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2018,6 +2412,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -2095,6 +2496,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PrescriptionDescription (300a,000e)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
@@ -2298,6 +2706,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2326,6 +2741,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2421,6 +2857,12 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2451,6 +2893,16 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2463,6 +2915,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2538,8 +2994,26 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2584,6 +3058,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2641,6 +3117,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2679,6 +3157,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTReferencedDoseSequence ReferencedDoseSequence;
     /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3
     DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence;
+    /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3
+    DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
 
     // --- RTPrescriptionModule (U) ---
 
@@ -2718,6 +3198,21 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C
     DcmPersonName ReviewerName;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2740,6 +3235,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index 546f92c814813e86a9da950ddbb0f82f1dde104a..6a8c33691577489e2db31edb6862dca3e4769529 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBeamsTreatmentRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgss.h"   // for FractionGroupSummarySequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtmdrs.h"   // for MeasuredDoseReferenceSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -49,6 +54,8 @@
 #include "dcmtk/dcmrt/seq/drtpdecs.h"  // for PrivateDataElementCharacteristicsSequence
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
 #include "dcmtk/dcmrt/seq/drttms0.h"   // for TreatmentMachineSequence
 #include "dcmtk/dcmrt/seq/drttsibs.h"  // for TreatmentSessionIonBeamSequence
 #include "dcmtk/dcmrt/seq/drttscds.h"  // for TreatmentSummaryCalculatedDoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drttsmds.h"  // for TreatmentSummaryMeasuredDoseReferenceSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTIonBeamsTreatmentRecordIOD
@@ -204,6 +217,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFBool isRTTreatmentSummaryRecordModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -242,6 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -389,6 +417,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -487,6 +522,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -508,6 +550,41 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -585,6 +662,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -592,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -599,6 +690,20 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -613,6 +718,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -669,6 +781,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -739,6 +858,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PrimaryDosimeterUnit (300a,00b3)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -900,6 +1026,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -935,6 +1068,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1079,6 +1233,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1115,6 +1281,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1151,6 +1329,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const
         { return FractionGroupSummarySequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1223,6 +1413,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
     /** get MeasuredDoseReferenceSequence (3008,0010)
      *  @return reference to sequence element
      */
@@ -1235,6 +1437,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTMeasuredDoseReferenceSequence &getMeasuredDoseReferenceSequence() const
         { return MeasuredDoseReferenceSequence; }
 
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1379,6 +1593,30 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const
         { return ReasonForPerformedProcedureCodeSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1511,6 +1749,66 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1571,6 +1869,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const
         { return TreatmentSummaryMeasuredDoseReferenceSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1601,6 +1911,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1748,6 +2065,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1839,6 +2163,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1860,6 +2191,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1930,6 +2282,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1937,6 +2296,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1944,6 +2310,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1958,6 +2331,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2007,6 +2387,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -2070,6 +2457,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PrimaryDosimeterUnit (300a,00b3)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2217,6 +2611,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2245,6 +2646,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2347,6 +2769,12 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2377,6 +2805,16 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2389,6 +2827,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2473,8 +2915,26 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2510,6 +2970,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2560,6 +3022,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2631,6 +3095,21 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3
     DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2653,6 +3132,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index cc7ed760084ed87df25ac0a256a4fc18cd7a44a8..78e907b7c46b4f6e75b2bdbf4e7fdeb336466aa8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drtdrs.h"    // for DoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgs.h"    // for FractionGroupSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -51,6 +56,8 @@
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrds.h"    // for ReferencedDoseSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtss.h"     // for SourceSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
 #include "dcmtk/dcmrt/seq/drttts.h"    // for ToleranceTableSequence
 #include "dcmtk/dcmrt/seq/drttms9.h"   // for TreatmentMachineSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTPlanIOD
@@ -237,6 +250,14 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -275,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -436,6 +464,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -450,6 +485,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const;
 
+    /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const;
+
     /** get FrameOfReferenceUID (0020,0052)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -534,6 +576,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -555,6 +604,41 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -611,6 +695,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -618,6 +709,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -625,6 +723,20 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -639,6 +751,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -695,6 +814,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -779,6 +905,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PrescriptionDescription (300a,000e)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -989,6 +1122,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1024,6 +1164,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1173,6 +1334,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1209,6 +1382,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1257,6 +1442,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTFractionGroupSequence &getFractionGroupSequence() const
         { return FractionGroupSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1329,6 +1526,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1485,6 +1706,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTReferencedDoseSequence &getReferencedDoseSequence() const
         { return ReferencedDoseSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1617,6 +1862,42 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
     /** get SourceSequence (300a,0210)
      *  @return reference to sequence element
      */
@@ -1629,6 +1910,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTSourceSequence &getSourceSequence() const
         { return SourceSequence; }
 
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1665,6 +1970,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule &getTreatmentMachineSequence() const
         { return TreatmentMachineSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1695,6 +2012,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1856,6 +2180,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1870,6 +2201,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue);
 
+    /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=16
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0);
+
     /** set FrameOfReferenceUID (0020,0052)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -1947,6 +2285,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1968,6 +2313,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2024,6 +2390,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2031,6 +2404,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -2038,6 +2418,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2052,6 +2439,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2101,6 +2495,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -2178,6 +2579,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PrescriptionDescription (300a,000e)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
@@ -2381,6 +2789,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2409,6 +2824,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2504,6 +2940,12 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2534,6 +2976,16 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2546,6 +2998,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2621,8 +3077,26 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2667,6 +3141,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2724,6 +3200,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2762,6 +3240,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTReferencedDoseSequence ReferencedDoseSequence;
     /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3
     DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence;
+    /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3
+    DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
 
     // --- RTPrescriptionModule (U) ---
 
@@ -2814,6 +3294,21 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C
     DcmPersonName ReviewerName;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2836,6 +3331,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index 21948f8de74ec775d2ad3c0fe694ca591026585b..bd17bdd91a14c4f9c739deb1eb36c9d670a010ef 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTStructureSetIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -49,6 +54,8 @@
 #include "dcmtk/dcmrt/seq/drtrros.h"   // for RTROIObservationsSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrfors.h"  // for ReferencedFrameOfReferenceSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtssrs.h"   // for StructureSetROISequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTStructureSetIOD
@@ -183,6 +196,14 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -221,6 +242,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -368,6 +396,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -466,6 +501,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -487,6 +529,41 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -543,6 +620,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -550,6 +634,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -557,6 +648,20 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -571,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -627,6 +739,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -704,6 +823,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get QualityControlSubject (0010,0200)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -865,6 +991,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -900,6 +1033,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StructureSetDate (3006,0008)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1046,6 +1200,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1082,6 +1248,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1106,6 +1284,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTEncryptedAttributesSequence &getEncryptedAttributesSequence() const
         { return EncryptedAttributesSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1178,6 +1368,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1358,6 +1572,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const
         { return ReferencedFrameOfReferenceSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1466,6 +1704,66 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StructureSetROISequence (3006,0020)
      *  @return reference to sequence element
      */
@@ -1490,6 +1788,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1520,6 +1830,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1667,6 +1984,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1758,6 +2082,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1779,6 +2110,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1835,6 +2187,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1842,6 +2201,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1849,6 +2215,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1863,6 +2236,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1912,6 +2292,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -1982,6 +2369,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set QualityControlSubject (0010,0200)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2136,6 +2530,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2164,6 +2565,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StructureSetDate (3006,0008)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2280,6 +2702,12 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2310,6 +2738,16 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2322,6 +2760,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2397,8 +2839,26 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2443,6 +2903,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2493,6 +2955,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2552,6 +3016,21 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C
     DcmPersonName ReviewerName;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2574,6 +3053,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index 5822e242300d507f9e44003f2f04aec6c0891a48..ba64bade3449ea0f0ee64ff62c9098d221165071 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSummaryRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgss.h"   // for FractionGroupSummarySequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -46,6 +51,8 @@
 #include "dcmtk/dcmrt/seq/drtpdecs.h"  // for PrivateDataElementCharacteristicsSequence
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
 #include "dcmtk/dcmrt/seq/drttscds.h"  // for TreatmentSummaryCalculatedDoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drttsmds.h"  // for TreatmentSummaryMeasuredDoseReferenceSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTTreatmentSummaryRecordIOD
@@ -167,6 +180,14 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFBool isClinicalTrialSeriesModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -205,6 +226,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -352,6 +380,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -450,6 +485,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -471,6 +513,41 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -534,6 +611,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -541,6 +625,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -548,6 +639,20 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -562,6 +667,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -618,6 +730,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -688,6 +807,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get QualityControlSubject (0010,0200)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -828,6 +954,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -863,6 +996,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -995,6 +1149,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1031,6 +1197,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1067,6 +1245,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const
         { return FractionGroupSummarySequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1139,6 +1329,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1271,6 +1485,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const
         { return ReasonForPerformedProcedureCodeSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1403,6 +1641,66 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1439,6 +1737,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const
         { return TreatmentSummaryMeasuredDoseReferenceSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1469,6 +1779,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1616,6 +1933,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1707,6 +2031,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1728,6 +2059,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1791,6 +2143,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1798,6 +2157,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1805,6 +2171,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1819,6 +2192,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1868,6 +2248,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -1931,6 +2318,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set QualityControlSubject (0010,0200)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2064,6 +2458,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2092,6 +2493,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2194,6 +2616,12 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2224,6 +2652,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2236,6 +2674,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2311,8 +2753,26 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2357,6 +2817,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2407,6 +2869,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2447,6 +2911,21 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3
     DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2469,6 +2948,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
index 271dfb245df1f3a425b98f44830056fba0a22c7f..de101beb6c914dba5cafdcdf3f60e974f124ba44 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAssigningAgencyOrDepartmentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 12211700dc1507c0773abb8008d91222997a3f5d..67afbb39faf92aec973bc2167a5aff1817e3f1e0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAdmittingDiagnosesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index bd799e36ec3eee4d06d90c08b33484a1071e0517..1b818280a2d9efd7c6395af4496a6604039be3a0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAdditionalDrugSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index af706b183d6c35a419e8abf39d08f06f8c11219b..f5877ce23315e05fbbaa70ed5fba0422aa09c1cf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAssigningFacilitySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9f9fa998cf5dcdef6f95d8aabf818522783a2982..ec5614f7ee2eed01dd27f4a553aa12d36bc6ffca 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorGeometrySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4d404cf1a8204178ace382434d0fca2f5361cdcf..69c526211fde98b0e45064b19f25c9c80eb78ecf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAssigningJurisdictionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
deleted file mode 100644 (file)
index 6b21868..0000000
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- *
- *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
- *  All rights reserved.  See COPYRIGHT file for details.
- *
- *  Header file for class DRTAdditionalRTROIIdentificationCodeSequence
- *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
- *
- */
-
-
-#ifndef DRTARICS_H
-#define DRTARICS_H
-
-#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
-
-#include "dcmtk/ofstd/oflist.h"        // for standard list class
-#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
-#include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
-#include "dcmtk/dcmrt/seq/drtporcs.h"  // for PurposeOfReferenceCodeSequence
-
-
-/** Interface class for AdditionalRTROIIdentificationCodeSequence (3006,00b9)
- */
-class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
-  : protected DRTTypes
-{
-
-  public:
-
-    /** Item class
-     */
-    class DCMTK_DCMRT_EXPORT Item
-      : protected DRTTypes
-    {
-
-      public:
-
-      // --- constructors, destructor and operators ---
-
-        /** (default) constructor
-         *  @param emptyDefaultItem flag used to mark the empty default item
-         */
-        Item(const OFBool emptyDefaultItem = OFFalse);
-
-        /** copy constructor
-         *  @param copy item object to be copied
-         */
-        Item(const Item &copy);
-
-        /** destructor
-         */
-        virtual ~Item();
-
-        /** assigment operator
-         *  @param copy item object to be copied
-         */
-        Item &operator=(const Item &copy);
-
-      // --- general methods ---
-
-        /** clear all internal member variables
-         */
-        void clear();
-
-        /** check if item is empty
-         *  @return OFTrue if item is empty, OFFalse otherwise
-         */
-        OFBool isEmpty();
-
-        /** check if item is valid, i.e.\ not the empty default item
-         *  @return OFTrue if item is valid, OFFalse otherwise
-         */
-        OFBool isValid() const;
-
-      // --- input/output methods ---
-
-        /** read elements from sequence item
-         *  @param  item    reference to DICOM sequence item from which the elements should be read
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition read(DcmItem &item);
-
-        /** write elements to sequence item
-         *  @param  item    reference to DICOM sequence item to which the elements should be written
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition write(DcmItem &item);
-
-      // --- get DICOM attribute values ---
-
-        /** get CodeMeaning (0008,0104)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const;
-
-        /** get CodeValue (0008,0100)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getCodeValue(OFString &value, const signed long pos = 0) const;
-
-        /** get CodingSchemeDesignator (0008,0102)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const;
-
-        /** get CodingSchemeVersion (0008,0103)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const;
-
-        /** get ContextGroupExtensionCreatorUID (0008,010d)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const;
-
-        /** get ContextGroupExtensionFlag (0008,010b)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const;
-
-        /** get ContextGroupLocalVersion (0008,0107)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const;
-
-        /** get ContextGroupVersion (0008,0106)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
-
-        /** get ContextIdentifier (0008,010f)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
-
-        /** get ContextUID (0008,0117)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
-
-        /** get LongCodeValue (0008,0119)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const;
-
-        /** get MappingResource (0008,0105)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
-
-        /** get MappingResourceUID (0008,0118)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
-
-        /** get URNCodeValue (0008,0120)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const;
-
-      // --- get DICOM sequence attributes ---
-
-        /** get EquivalentCodeSequence (0008,0121)
-         *  @return reference to sequence element
-         */
-        DRTEquivalentCodeSequence &getEquivalentCodeSequence()
-            { return EquivalentCodeSequence; }
-
-        /** get EquivalentCodeSequence (0008,0121)
-         *  @return const reference to sequence element
-         */
-        const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
-            { return EquivalentCodeSequence; }
-
-        /** get PurposeOfReferenceCodeSequence (0040,a170)
-         *  @return reference to sequence element
-         */
-        DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence()
-            { return PurposeOfReferenceCodeSequence; }
-
-        /** get PurposeOfReferenceCodeSequence (0040,a170)
-         *  @return const reference to sequence element
-         */
-        const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const
-            { return PurposeOfReferenceCodeSequence; }
-
-      // --- set DICOM attribute values ---
-
-        /** set CodeMeaning (0008,0104)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue);
-
-        /** set CodeValue (0008,0100)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue);
-
-        /** set CodingSchemeDesignator (0008,0102)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue);
-
-        /** set CodingSchemeVersion (0008,0103)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue);
-
-        /** set ContextGroupExtensionCreatorUID (0008,010d)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue);
-
-        /** set ContextGroupExtensionFlag (0008,010b)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue);
-
-        /** set ContextGroupLocalVersion (0008,0107)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue);
-
-        /** set ContextGroupVersion (0008,0106)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
-
-        /** set ContextIdentifier (0008,010f)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
-
-        /** set ContextUID (0008,0117)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
-
-        /** set LongCodeValue (0008,0119)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue);
-
-        /** set MappingResource (0008,0105)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
-
-        /** set MappingResourceUID (0008,0118)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
-
-        /** set URNCodeValue (0008,0120)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue);
-
-      private:
-
-        /// internal flag used to mark the empty default item
-        /*const*/ OFBool EmptyDefaultItem;
-
-        /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1
-        DcmLongString CodeMeaning;
-        /// CodeValue (0008,0100) vr=SH, vm=1, type=1C
-        DcmShortString CodeValue;
-        /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C
-        DcmShortString CodingSchemeDesignator;
-        /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C
-        DcmShortString CodingSchemeVersion;
-        /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C
-        DcmUniqueIdentifier ContextGroupExtensionCreatorUID;
-        /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3
-        DcmCodeString ContextGroupExtensionFlag;
-        /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C
-        DcmDateTime ContextGroupLocalVersion;
-        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C
-        DcmDateTime ContextGroupVersion;
-        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3
-        DcmCodeString ContextIdentifier;
-        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
-        DcmUniqueIdentifier ContextUID;
-        /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3
-        DRTEquivalentCodeSequence EquivalentCodeSequence;
-        /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C
-        DcmUnlimitedCharacters LongCodeValue;
-        /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
-        DcmCodeString MappingResource;
-        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
-        DcmUniqueIdentifier MappingResourceUID;
-        /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=1
-        DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence;
-        /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
-        DcmUniversalResourceIdentifierOrLocator URNCodeValue;
-
-    };
-
-  // --- constructors, destructor and operators ---
-
-    /** (default) constructor
-     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
-     */
-    DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
-
-    /** copy constructor
-     *  @param copy sequence object to be copied
-     */
-    DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence &copy);
-
-    /** destructor
-     */
-    virtual ~DRTAdditionalRTROIIdentificationCodeSequence();
-
-    /** assigment operator
-     *  @param copy sequence object to be copied
-     */
-    DRTAdditionalRTROIIdentificationCodeSequence &operator=(const DRTAdditionalRTROIIdentificationCodeSequence &copy);
-
-  // --- general methods ---
-
-    /** clear all internal member variables
-     */
-    void clear();
-
-    /** check if sequence is empty
-     *  @return OFTrue if sequence is empty, OFFalse otherwise
-     */
-    OFBool isEmpty();
-
-    /** check if sequence is valid, i.e.\ not the empty default sequence
-     *  @return OFTrue if sequence is valid, OFFalse otherwise
-     */
-    OFBool isValid() const;
-
-    /** get number of items in the sequence
-     *  @return number of items
-     */
-    unsigned long getNumberOfItems() const;
-
-    /** goto first item in the sequence
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition gotoFirstItem();
-
-    /** goto next item in the sequence
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition gotoNextItem();
-
-    /** goto particular item in the sequence
-     *  @param  num  number of the item to be selected (0..num-1)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition gotoItem(const unsigned long num);
-
-    /** get current item in the sequence
-     *  @param  item  reference to item pointer (result variable)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition getCurrentItem(Item *&item) const;
-
-    /** get current item in the sequence
-     *  @return reference to specified item if successful, empty default item otherwise
-     */
-    Item &getCurrentItem();
-
-    /** get current item in the sequence
-     *  @return const reference to specified item if successful, empty default item otherwise
-     */
-    const Item &getCurrentItem() const;
-
-    /** get particular item in the sequence
-     *  @param  num   number of the item to be retrieved (0..num-1)
-     *  @param  item  reference to item pointer (result variable)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition getItem(const unsigned long num, Item *&item);
-
-    /** get particular item in the sequence
-     *  @param  num  number of the item to be retrieved (0..num-1)
-     *  @return reference to specified item if successful, empty default item otherwise
-     */
-    Item &getItem(const unsigned long num);
-
-    /** get particular item in the sequence
-     *  @param  num  number of the item to be retrieved (0..num-1)
-     *  @return const reference to specified item if successful, empty default item otherwise
-     */
-    const Item &getItem(const unsigned long num) const;
-
-    /** get particular item in the sequence
-     *  @param  num  number of the item to be retrieved (0..num-1)
-     *  @return reference to specified item if successful, empty default item otherwise
-     */
-    Item &operator[](const unsigned long num);
-
-    /** get particular item in the sequence
-     *  @param  num  number of the item to be retrieved (0..num-1)
-     *  @return const reference to specified item if successful, empty default item otherwise
-     */
-    const Item &operator[](const unsigned long num) const;
-
-    /** add new item to the end of this sequence
-     *  @param  item  reference to new item pointer (result variable)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition addItem(Item *&item);
-
-    /** insert new item into the sequence
-     *  @param  pos   position where the new item is to be inserted (0..num)
-     *  @param  item  reference to new item pointer (result variable)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition insertItem(const unsigned long pos, Item *&item);
-
-    /** remove particular item from the sequence
-     *  @param  pos  position of the item to be removed (0..num-1)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition removeItem(const unsigned long pos);
-
-  // --- input/output methods ---
-
-    /** read sequence of items from dataset
-     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
-     *  @param  card        cardinality (valid range for number of items)
-     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
-     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition read(DcmItem &dataset,
-                     const OFString &card,
-                     const OFString &type,
-                     const char *moduleName = NULL);
-
-    /** write sequence of items to dataset
-     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
-     *  @param  card        cardinality (valid range for number of items)
-     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
-     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition write(DcmItem &dataset,
-                      const OFString &card,
-                      const OFString &type,
-                      const char *moduleName = NULL);
-
-  protected:
-
-    /** goto particular item in the sequence
-     *  @param  num       number of the item to be selected (0..num-1)
-     *  @param  iterator  list iterator storing the position of the item
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition gotoItem(const unsigned long num,
-                         OFListIterator(Item *) &iterator);
-
-    /** goto particular item in the sequence
-     *  @param  num       number of the item to be selected (0..num-1)
-     *  @param  iterator  list iterator storing the position of the item
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    OFCondition gotoItem(const unsigned long num,
-                         OFListConstIterator(Item *) &iterator) const;
-
-  private:
-
-    /// internal flag used to mark the empty default sequence
-    /*const*/ OFBool EmptyDefaultSequence;
-
-    /// list of items in this sequence
-    OFList<Item *>         SequenceOfItems;
-    /// currently selected item
-    OFListIterator(Item *) CurrentItem;
-    /// empty default item
-    Item                   EmptyItem;
-
-};
-
-
-#endif
index c1d420a83497dbe51db75bdb39384e298a977d8d..88f4e04a81d76f03eafa135e83ecb03c489f18ba 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a07e40ebf5c5fbcb562d493aea75825e95912e80..d12b13b7cc3503b2862e647d098cdda1e335480c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2ca82efea2aba130b69191ee3b8b6e63c0da24a7..0ad16c3437850aeae357ba29d0f44d789c835cd7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 743c95180b7885d6c9fbe46c421ec6581ce16eb6..7195c3c8c0accd8168041a171c3f84aa500cafa0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d6f992214bf57da2f040a9cc0d4ff9c3f6454b1e..42d75e509942f1f9e6846198505549f6be3a9ca1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicationSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6a9203b22b8011f32452dbf2316cbe8a3c1bbe80..72334b71e5d02f716cf0ade4b1076851c8ee7a75 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBrachyAccessoryDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 62525029739a3329fc6b66d0b2ef06c188737828..161a5fc421bb4d1492a9e025a9260bad0d191a42 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContrastBolusAgentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 0d0162475ba1490ae3d14f80ced16452305c04d5..d7d0c7a36818a4a4daf0f063d556c34bc018506a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBrachyControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a5168096f2d0fbc579ccd34d69ca7108787558f3..2a628d18d57064f296546dd12cab5dc20d872037 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBlockSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -229,6 +229,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule
          */
         OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get TrayAccessoryCode (300a,0355)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const;
+
       // --- set DICOM attribute values ---
 
         /** set AccessoryCode (300a,00f9)
@@ -322,6 +329,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule
          */
         OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set TrayAccessoryCode (300a,0355)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+
       private:
 
         /// internal flag used to mark the empty default item
@@ -353,6 +367,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule
         DcmShortString MaterialID;
         /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2
         DcmDecimalString SourceToBlockTrayDistance;
+        /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3
+        DcmLongString TrayAccessoryCode;
 
     };
 
index c0046f277d75de47460a30792b696c19cf78aa90..202e43943642b6b0fedeea54b88f568c53d13834 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBlockSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -215,6 +215,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule
          */
         OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get TrayAccessoryCode (300a,0355)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const;
+
       // --- set DICOM attribute values ---
 
         /** set AccessoryCode (300a,00f9)
@@ -301,6 +308,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule
          */
         OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set TrayAccessoryCode (300a,0355)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+
       private:
 
         /// internal flag used to mark the empty default item
@@ -330,6 +344,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule
         DcmShortString MaterialID;
         /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2
         DcmDecimalString SourceToBlockTrayDistance;
+        /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3
+        DcmLongString TrayAccessoryCode;
 
     };
 
index b6a15af07329f8f6af2c03013837647182ade6c4..e8201957247f8be0ab8f9a589c27fddfb98b18f8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceLeafPairsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index acadc81ca558f65286679151817dabf893d20fe5..ff6ce85b8a9f200f2aeefef3354035989239daeb 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDevicePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 05d8c5abb5a8d059869d841bb545dbb9ef495b3b..f31b6da18f990876c5c93e3d9d95a6b7f6c5fd2c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e23c7110b2736aeba7b3d498071c11dde5169968..ddb7c228bb0d999a25e08f740363a87349ec7d1a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b3ca61b35ab900b4a83438bf64baac6b478befa3..36ee4f6e7b1c300594654b348fe4298cc640e518 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8cc3222df2fdf3d2712cdda8b5fc5f5fb486e399..65c26f7b5283b774fa560b90b27ff9799e8694fd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceToleranceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 52a1c540c4a3127e109bd2004ff3ce7c230ee15c..691797a5c978e85e2c13bacb64f97a39537f7bec 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBreedRegistryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 1926e8145004ec9cd1ae6651bdb52830aeabe99d..9b81efc35c053520beacf20df9b0073bcbdfcc4d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBrachyReferencedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index bb5998fcca0e94767bade478b9a35c04537b18d7..241af418765d73e651dc705987d9449b7b8f3ecf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBreedRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a585e4d76d7c51192164e28d282705f549cb33fe..56f003b5ce2457fad872d131df22ad967278b8bb 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1ef3ef99460c8c1191b94b66b263b35e446fa242..b1998ae42f8fbcaca8c484058e26e380b4b26f11 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBlockSlabSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0084c67b6b18ad2fcacbc5ac25f7a40481e66160..f6192d61e67d487a6babbabe9992d3acb58602b9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamDoseVerificationControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -111,12 +111,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence
          */
         OFCondition getAverageBeamDosePointSSD(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131)
+        /** get AverageBeamDosePointSourceToExternalContourDistance (300a,0131)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos = 0) const;
+        OFCondition getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos = 0) const;
 
         /** get CumulativeMetersetWeight (300a,0134)
          *  @param  value  reference to variable in which the value should be stored
@@ -169,12 +169,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence
          */
         OFCondition setAverageBeamDosePointSSD(const Float32 value, const unsigned long pos = 0);
 
-        /** set AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131)
+        /** set AverageBeamDosePointSourceToExternalContourDistance (300a,0131)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos = 0);
+        OFCondition setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos = 0);
 
         /** set CumulativeMetersetWeight (300a,0134)
          *  @param  value  value to be set (single value only) or "" for no value
@@ -201,8 +201,8 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence
         DcmFloatingPointSingle AverageBeamDosePointEquivalentDepth;
         /// AverageBeamDosePointSSD (300a,008f) vr=FL, vm=1, type=2C
         DcmFloatingPointSingle AverageBeamDosePointSSD;
-        /// AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) vr=FL, vm=1, type=3
-        DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourSurfaceDistance;
+        /// AverageBeamDosePointSourceToExternalContourDistance (300a,0131) vr=FL, vm=1, type=3
+        DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourDistance;
         /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=1
         DcmDecimalString CumulativeMetersetWeight;
         /// ReferencedControlPointIndex (300c,00f0) vr=IS, vm=1, type=1C
index b4a8b961df0102f90b1719347366bcd4a636ad94..b57b6cef89c065d300c81ae670b7dc21f856dae0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContrastBolusAdministrationRouteSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -349,6 +363,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index dbc3c4fd3973bd465b3ce4566a87a7bd96b12d85..633c090f683a0a2f5d67f2ded45dde1bbc02e02b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConceptCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index d9546ee15af7d30c915b257391a974d594eb4da9..d22d7eef4cb69cf7d183ce4205831ac7bc3a7af5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConsentForClinicalTrialUseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e03002a09d7ae80603323d7c53d61455f4dd4820..e35b7323a6e4a202c0a567e398e760efbdc737e6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4ff68b033a9d8cae4b52f547142e032cae2835b7..2f7cb4d09a048c2ca812074969dfdaae1292cd33 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContributingEquipmentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h
new file mode 100644 (file)
index 0000000..e1f3590
--- /dev/null
@@ -0,0 +1,350 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTContextGroupIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTCGIS_H
+#define DRTCGIS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+
+
+/** Interface class for ContextGroupIdentificationSequence (0008,0123)
+ */
+class DCMTK_DCMRT_EXPORT DRTContextGroupIdentificationSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get ContextGroupVersion (0008,0106)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextIdentifier (0008,010f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextUID (0008,0117)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+      // --- set DICOM attribute values ---
+
+        /** set ContextGroupVersion (0008,0106)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextIdentifier (0008,010f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextUID (0008,0117)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=1
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1
+        DcmCodeString MappingResource;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTContextGroupIdentificationSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTContextGroupIdentificationSequence &operator=(const DRTContextGroupIdentificationSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index a6138170a2de9914896b53a3014c5b51b0d5f3d6..ca3062ee58771e0799d79372e86a4bcdcf49988a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTChannelSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 014d4a43201f6150952e5bc1ff261014f7658c85..e7f744ef6efbb8ec40bbb522bca15d91e6a4ab19 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContentItemModifierSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2b6ca66015ea9f65f19697fb04963b04584c9f6f..9f0e89c87774119647e4fc310f70f13ec1154040 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContourImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d2fe4185fee8fe741c940a6983879dc44eb6a406..5332ae1f2f8d5c5390c6df24d779d77968e34f4d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConceptNameCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index b3165ac0a71491a543adedfbc71e8fbc489c3b02..b534a86235803e9a1d6ab82936245157ed70f906 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -302,6 +302,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence
          */
         OFCondition getSourceToCompensatorTrayDistance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get TrayAccessoryCode (300a,0355)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const;
+
       // --- set DICOM attribute values ---
 
         /** set AccessoryCode (300a,00f9)
@@ -423,6 +430,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence
          */
         OFCondition setSourceToCompensatorTrayDistance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set TrayAccessoryCode (300a,0355)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+
       private:
 
         /// internal flag used to mark the empty default item
@@ -462,6 +476,8 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence
         DcmDecimalString SourceToCompensatorDistance;
         /// SourceToCompensatorTrayDistance (300a,00e6) vr=DS, vm=1, type=2
         DcmDecimalString SourceToCompensatorTrayDistance;
+        /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3
+        DcmLongString TrayAccessoryCode;
 
     };
 
index 2f2721813faea7ce9cfabf4c33c0b94b565e3feb..e0cac7b61f5d9418c76e28a1a6549c67eec870c0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCorrectedParameterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 76052a2caf6e20eb4e59b5b6ea11b1f0e22684c7..fd65c118e975c8d347b1401203bebcdfc50f52b1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConsultingPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 996ace142c9834b64860b77b8ab8c0e2efbebe3a..b3b39d400d7b79b5d724fa3e6d74e41cf239dbdb 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1e90545ea2ab7daf971837f359df5cbf3970b105..08147c7a60f267dcb211cf90114e524840c42361 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e57aa0e50f006c4888249820c537579a844f7771..634e077b251c261d588dd929da91e3a51b359e61 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConversionSourceAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 273d59e24eb66cc32bc8bb1f2529ee1dda916055..3fdcbb1d2c2ad0079cdef94b871f63fb67a1954f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTChannelShieldSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 279ba04239761d31aed4cc1f75bbc26a8d1a19a9..1b63a03997b11a90e98598d69e3ffb588093e9dc 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCodingSchemeIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 5368bc55f800f000ff3d08746e3d6b051a27608d..f6f0fdec23af85ea5a12d41ad2872cf3f77fe184 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTChannelSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 49f3811f602a5e80c0984deedd758fe143d590c7..d34a1c553aa1b94a2a82b423e9ef81ff766fa961 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDerivationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h
new file mode 100644 (file)
index 0000000..b765db6
--- /dev/null
@@ -0,0 +1,366 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTDeliveredDepthDoseParametersSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTDDDPS_H
+#define DRTDDDPS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+
+
+/** Interface class for DeliveredDepthDoseParametersSequence (300a,0506)
+ */
+class DCMTK_DCMRT_EXPORT DRTDeliveredDepthDoseParametersSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get DeliveredDistalDepth (300a,0508)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDeliveredDistalDepth(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get DeliveredDistalDepthFraction (300a,0507)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get DeliveredNominalRangeModulatedRegionDepths (300a,0510)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get DeliveredNominalRangeModulationFractions (300a,0509)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get DeliveredReferenceDoseDefinition (300a,0511)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos = 0) const;
+
+      // --- set DICOM attribute values ---
+
+        /** set DeliveredDistalDepth (300a,0508)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDeliveredDistalDepth(const Float32 value, const unsigned long pos = 0);
+
+        /** set DeliveredDistalDepthFraction (300a,0507)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos = 0);
+
+        /** set DeliveredNominalRangeModulatedRegionDepths (300a,0510)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0);
+
+        /** set DeliveredNominalRangeModulationFractions (300a,0509)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0);
+
+        /** set DeliveredReferenceDoseDefinition (300a,0511)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// DeliveredDistalDepth (300a,0508) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DeliveredDistalDepth;
+        /// DeliveredDistalDepthFraction (300a,0507) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DeliveredDistalDepthFraction;
+        /// DeliveredNominalRangeModulatedRegionDepths (300a,0510) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle DeliveredNominalRangeModulatedRegionDepths;
+        /// DeliveredNominalRangeModulationFractions (300a,0509) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle DeliveredNominalRangeModulationFractions;
+        /// DeliveredReferenceDoseDefinition (300a,0511) vr=CS, vm=1, type=1
+        DcmCodeString DeliveredReferenceDoseDefinition;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTDeliveredDepthDoseParametersSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTDeliveredDepthDoseParametersSequence &operator=(const DRTDeliveredDepthDoseParametersSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h
new file mode 100644 (file)
index 0000000..6179542
--- /dev/null
@@ -0,0 +1,366 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTDepthDoseParametersSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTDDPS_H
+#define DRTDDPS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+
+
+/** Interface class for DepthDoseParametersSequence (300a,0505)
+ */
+class DCMTK_DCMRT_EXPORT DRTDepthDoseParametersSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get DistalDepth (300a,0502)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDistalDepth(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get DistalDepthFraction (300a,0501)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get NominalRangeModulatedRegionDepths (300a,0504)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get NominalRangeModulationFractions (300a,0503)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const;
+
+        /** get ReferenceDoseDefinition (300a,0512)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getReferenceDoseDefinition(OFString &value, const signed long pos = 0) const;
+
+      // --- set DICOM attribute values ---
+
+        /** set DistalDepth (300a,0502)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDistalDepth(const Float32 value, const unsigned long pos = 0);
+
+        /** set DistalDepthFraction (300a,0501)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDistalDepthFraction(const Float32 value, const unsigned long pos = 0);
+
+        /** set NominalRangeModulatedRegionDepths (300a,0504)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0);
+
+        /** set NominalRangeModulationFractions (300a,0503)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0);
+
+        /** set ReferenceDoseDefinition (300a,0512)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// DistalDepth (300a,0502) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DistalDepth;
+        /// DistalDepthFraction (300a,0501) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DistalDepthFraction;
+        /// NominalRangeModulatedRegionDepths (300a,0504) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle NominalRangeModulatedRegionDepths;
+        /// NominalRangeModulationFractions (300a,0503) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle NominalRangeModulationFractions;
+        /// ReferenceDoseDefinition (300a,0512) vr=CS, vm=1, type=1
+        DcmCodeString ReferenceDoseDefinition;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTDepthDoseParametersSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTDepthDoseParametersSequence &operator=(const DRTDepthDoseParametersSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 9e66cb66ce30376b3ae3f2184575984bccbe3f39..9290e42ca96b836c6dd418f1624838c3f348b242 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDeidentificationActionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 40d30cb9f52ffc3c1cfe01eebb0dd45c0ca6e734..764c642d4ae043cdf3a2e81ee0bdc4f87efc08a3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDeidentificationMethodCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 9bca717c4f4934681c30c77bd85305e9da8709e1..9382829d18ed0b15f096a0c20c136de01dc83dd6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDICOMMediaRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ca2f907585cc38d5aa1858aa015a748f50126b03..a0d0221ceef01012e2bb3c3e87b929f1edb10509 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDICOMRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 254a86f3ee10154047de7d8b581146fc44d6ce32..7904dec643f34427fe8ba1a913eadcb0d2134704 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c1c1a547551870f6031dad97a88e660299f46031..4f71ad9f912342f91c85dc97d22e61ca92b8e50d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -273,6 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -457,6 +464,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -522,6 +536,8 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence
         DcmLongString ManufacturerModelName;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 258b1b9c98f8e20c469f480a7cecb5e4ba58019a..041a5119a46c2089da952c9e51ec6c252a927162 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDigitalSignaturePurposeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 6def9ee7dbfb1e325afffc8c2e6453660154b982..b2686720909983e26676935bf82d18b4c70a0520 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDigitalSignaturesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ec4b5ce0ababec3d4b5d951d174c7c074388e305..36f66dec197924173eae0eaa7eedc03be2517e59 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDVHSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4bffe6dae8e9583820fee8f8acae86a2a22062f2..183e6692d67eae3262025bf69e8200746ae44dcd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDVHReferencedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ca2279e0eb091c76205a8b005f028e0d1bc019af..e24f96d19c046fcd49f1079bbeeeff687f5cdd1d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTEncryptedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0bedc2c2f5a69ed45549d1fc683027be584c11a3..0f62eebd7c863f0ec33b9b50657b3191c7c5a01c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTEquivalentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -118,6 +118,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const;
 
+        /** get ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupLocalVersion (0008,0107)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupVersion (0008,0106)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextIdentifier (0008,010f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextUID (0008,0117)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
+
         /** get LongCodeValue (0008,0119)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -125,6 +167,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceUID (0008,0118)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
+
         /** get URNCodeValue (0008,0120)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -162,6 +225,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupLocalVersion (0008,0107)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupVersion (0008,0106)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextIdentifier (0008,010f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextUID (0008,0117)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
+
         /** set LongCodeValue (0008,0119)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
@@ -169,6 +274,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceUID (0008,0118)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
+
         /** set URNCodeValue (0008,0120)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
@@ -189,8 +315,26 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
         DcmShortString CodingSchemeDesignator;
         /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C
         DcmShortString CodingSchemeVersion;
+        /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C
+        DcmUniqueIdentifier ContextGroupExtensionCreatorUID;
+        /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3
+        DcmCodeString ContextGroupExtensionFlag;
+        /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupLocalVersion;
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
         /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C
         DcmUnlimitedCharacters LongCodeValue;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
         DcmUniversalResourceIdentifierOrLocator URNCodeValue;
 
index 91d48518b34e9c2af02695d13101677a591c8f0f..3071b84385539dcc6ee52fd31520885cddb18df5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTExposureSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3958b4e531d6e10f9754a92df907bd593d297484..7ce7ecca4d556ddbf71209fd09e89541d3ffa392 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFixationDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c0b838ae7909664d2423129f9ab337ac46de433d..9b9a4974a287454a0f47c3ad7379ef7a4e65e55c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFrameExtractionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 271ad229d6977197151f5d45ba59f72c78ace988..c94f441a036b969383510167d60c6143439e203f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2d51366d95011859e344a0dc5a2d054948cea716..59a5551cb4b14facb891b87e2c7c4f83567f22b1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFractionGroupSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8f86405cc2e565fd5a99efa8e9c2cbef8230fbcb..a780ad508a10a2499b6aa427582a45fe4996248d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFluenceMapSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ae70ff568bb1bac953afcc322c8360b601c28409..9b6a16882634ee2e0a46371cf437fc3f52ad7eeb 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFractionStatusSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 996eb8bf2fff712dc8d8de4d641e78283eebd983..23c02799ba3e0c36abd4f342e0f4e81534f2203c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTGeneralAccessorySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h
new file mode 100644 (file)
index 0000000..4ff3aae
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTGroupOfPatientsIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTGPIS_H
+#define DRTGPIS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
+
+
+/** Interface class for GroupOfPatientsIdentificationSequence (0010,0027)
+ */
+class DCMTK_DCMRT_EXPORT DRTGroupOfPatientsIdentificationSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get IssuerOfPatientID (0010,0021)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
+
+        /** get PatientID (0010,0020)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPatientID(OFString &value, const signed long pos = 0) const;
+
+        /** get PatientPosition (0018,5100)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPatientPosition(OFString &value, const signed long pos = 0) const;
+
+        /** get SubjectRelativePositionInImage (0010,0028)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get IssuerOfPatientIDQualifiersSequence (0010,0024)
+         *  @return reference to sequence element
+         */
+        DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence()
+            { return IssuerOfPatientIDQualifiersSequence; }
+
+        /** get IssuerOfPatientIDQualifiersSequence (0010,0024)
+         *  @return const reference to sequence element
+         */
+        const DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() const
+            { return IssuerOfPatientIDQualifiersSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set IssuerOfPatientID (0010,0021)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PatientID (0010,0020)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PatientPosition (0018,5100)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPatientPosition(const OFString &value, const OFBool check = OFTrue);
+
+        /** set SubjectRelativePositionInImage (0010,0028)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=3
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos = 0);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// IssuerOfPatientID (0010,0021) vr=LO, vm=1, type=3
+        DcmLongString IssuerOfPatientID;
+        /// IssuerOfPatientIDQualifiersSequence (0010,0024) vr=SQ, vm=1, type=3
+        DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
+        /// PatientID (0010,0020) vr=LO, vm=1, type=1
+        DcmLongString PatientID;
+        /// PatientPosition (0018,5100) vr=CS, vm=1, type=3
+        DcmCodeString PatientPosition;
+        /// SubjectRelativePositionInImage (0010,0028) vr=US, vm=3, type=3
+        DcmUnsignedShort SubjectRelativePositionInImage;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTGroupOfPatientsIdentificationSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTGroupOfPatientsIdentificationSequence &operator=(const DRTGroupOfPatientsIdentificationSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 0b84aa3c395f0f5a6ce2b2235e6ddab757dcb68f..a55b6b781f5af135b92fec292fce5d6e6aaec91b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTHL7StructuredDocumentReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3426c48a733d0b852c0fc23bb6ff4e4e4489b7f2..2bbbdf837fa85f7bf7c98d6bf439b2e8c81242a3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfAdmissionIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d3c22e6251fff2bf77c9792de34c5c35eed61992..89f22f0170df222efbd5f520c21a5a129aaee871 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfAccessionNumberSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 253673f898cbe17fb83795b1646b21fc2802ec5e..9964a4a6fcd27f96c6c5b4e1e9a6713450018e00 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBeamLimitingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d1cf983fef4687e9353bdf09f5189650136b83f3..380f1607151cf60b5f0b90cbbe7f8d1b8a0da877 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 105ab416fd080086c899ce3f554cc63dc9897945..9bf0a824f0042c5d7652f293db1b723f1a29e706 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -20,6 +20,7 @@
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtas6.h"    // for ApplicatorSequence
+#include "dcmtk/dcmrt/seq/drtddps.h"   // for DepthDoseParametersSequence
 #include "dcmtk/dcmrt/seq/drtgas.h"    // for GeneralAccessorySequence
 #include "dcmtk/dcmrt/seq/drtiblds.h"  // for IonBeamLimitingDeviceSequence
 #include "dcmtk/dcmrt/seq/drtibls.h"   // for IonBlockSequence
@@ -160,6 +161,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition getFinalCumulativeMetersetWeight(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get FixationEye (300a,0150)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationEye(OFString &value, const signed long pos = 0) const;
+
         /** get FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -209,6 +217,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+        /** get ModulatedScanModeType (300a,0309)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const;
+
         /** get NumberOfBlocks (300a,00f0)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -482,6 +497,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
         const DRTApplicatorSequenceInRTIonBeamsModule &getApplicatorSequence() const
             { return ApplicatorSequence; }
 
+        /** get DepthDoseParametersSequence (300a,0505)
+         *  @return reference to sequence element
+         */
+        DRTDepthDoseParametersSequence &getDepthDoseParametersSequence()
+            { return DepthDoseParametersSequence; }
+
+        /** get DepthDoseParametersSequence (300a,0505)
+         *  @return const reference to sequence element
+         */
+        const DRTDepthDoseParametersSequence &getDepthDoseParametersSequence() const
+            { return DepthDoseParametersSequence; }
+
         /** get GeneralAccessorySequence (300a,0420)
          *  @return reference to sequence element
          */
@@ -682,6 +709,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition setFinalCumulativeMetersetWeight(const OFString &value, const OFBool check = OFTrue);
 
+        /** set FixationEye (300a,0150)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue);
+
         /** set FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -731,6 +765,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ModulatedScanModeType (300a,0309)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue);
+
         /** set NumberOfBlocks (300a,00f0)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -921,10 +962,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
         DcmIntegerString BeamNumber;
         /// BeamType (300a,00c4) vr=CS, vm=1, type=1
         DcmCodeString BeamType;
+        /// DepthDoseParametersSequence (300a,0505) vr=SQ, vm=1, type=3
+        DRTDepthDoseParametersSequence DepthDoseParametersSequence;
         /// DeviceSerialNumber (0018,1000) vr=LO, vm=1, type=3
         DcmLongString DeviceSerialNumber;
         /// FinalCumulativeMetersetWeight (300a,010e) vr=DS, vm=1, type=1C
         DcmDecimalString FinalCumulativeMetersetWeight;
+        /// FixationEye (300a,0150) vr=CS, vm=1, type=3
+        DcmCodeString FixationEye;
         /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3
         DcmFloatingPointSingle FixationLightAzimuthalAngle;
         /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3
@@ -953,6 +998,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
         DcmLongString Manufacturer;
         /// ManufacturerModelName (0008,1090) vr=LO, vm=1, type=3
         DcmLongString ManufacturerModelName;
+        /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C
+        DcmCodeString ModulatedScanModeType;
         /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1
         DcmIntegerString NumberOfBlocks;
         /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1
index 5cd017c979b8689d0e0a222bcc0763663b58c650..7a10877b8a88d8ab231c9def3387e1b6ac9b615a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonControlPointDeliverySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -118,6 +118,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const;
 
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const;
+
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const;
+
         /** get DeliveredMeterset (3008,0044)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -293,6 +307,27 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const;
 
+        /** get ScanSpotPrescribedIndices (300a,0391)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotPrescribedIndices(OFString &value, const signed long pos = 0) const;
+
+        /** get ScanSpotPrescribedIndices (300a,0391)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos = 0) const;
+
+        /** get ScanSpotReordered (300a,0393)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotReordered(OFString &value, const signed long pos = 0) const;
+
         /** get ScanSpotTuneID (300a,0390)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -514,6 +549,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ChairHeadFramePosition (300a,0151)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue);
+
         /** set DeliveredMeterset (3008,0044)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -633,6 +675,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0);
 
+        /** set ScanSpotPrescribedIndices (300a,0391)
+         *  @param  value  value to be set (possibly multi-valued) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (IS) and VM (1-n) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setScanSpotPrescribedIndices(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ScanSpotReordered (300a,0393)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setScanSpotReordered(const OFString &value, const OFBool check = OFTrue);
+
         /** set ScanSpotTuneID (300a,0390)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
@@ -735,6 +791,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
         DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence;
         /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C
         DcmCodeString BeamLimitingDeviceRotationDirection;
+        /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3
+        DcmDecimalString ChairHeadFramePosition;
         /// CorrectedParameterSequence (3008,0068) vr=SQ, vm=1, type=3
         DRTCorrectedParameterSequence CorrectedParameterSequence;
         /// DeliveredMeterset (3008,0044) vr=DS, vm=1, type=1
@@ -781,6 +839,10 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
         DcmFloatingPointSingle ScanSpotMetersetsDelivered;
         /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C
         DcmFloatingPointSingle ScanSpotPositionMap;
+        /// ScanSpotPrescribedIndices (300a,0391) vr=IS, vm=1-n, type=1C
+        DcmIntegerString ScanSpotPrescribedIndices;
+        /// ScanSpotReordered (300a,0393) vr=CS, vm=1, type=3
+        DcmCodeString ScanSpotReordered;
         /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C
         DcmShortString ScanSpotTuneID;
         /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3
index e13581a947ee839e6b6c264ad3cada47898b5627..7e846ae93563b40e07bba71b208a26faa8def561 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -117,6 +117,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const;
 
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const;
+
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const;
+
         /** get ControlPointIndex (300a,0112)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -312,6 +326,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const;
 
+        /** get ScanSpotReorderingAllowed (300a,0395)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotReorderingAllowed(OFString &value, const signed long pos = 0) const;
+
         /** get ScanSpotTuneID (300a,0390)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -513,6 +534,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ChairHeadFramePosition (300a,0151)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue);
+
         /** set ControlPointIndex (300a,0112)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -639,6 +667,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0);
 
+        /** set ScanSpotReorderingAllowed (300a,0395)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setScanSpotReorderingAllowed(const OFString &value, const OFBool check = OFTrue);
+
         /** set ScanSpotTuneID (300a,0390)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
@@ -727,6 +762,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
         DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence;
         /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C
         DcmCodeString BeamLimitingDeviceRotationDirection;
+        /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3
+        DcmDecimalString ChairHeadFramePosition;
         /// ControlPointIndex (300a,0112) vr=IS, vm=1, type=1
         DcmIntegerString ControlPointIndex;
         /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=2
@@ -773,6 +810,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
         DcmFloatingPointSingle ScanSpotMetersetWeights;
         /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C
         DcmFloatingPointSingle ScanSpotPositionMap;
+        /// ScanSpotReorderingAllowed (300a,0395) vr=CS, vm=1, type=3
+        DcmCodeString ScanSpotReorderingAllowed;
         /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C
         DcmShortString ScanSpotTuneID;
         /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3
index 653883f2a7529ee6c285e61bb74f94f3457e18a4..96f22efadc69eadceafcb0b697ee931496cf35e9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTInstitutionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index de08f191d57dcb5233f353f867b69cd932b83055..90e4d65b35c4f9a328a05fa640f7e153647991ab 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIconImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -118,6 +118,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
          */
         OFCondition getBluePaletteColorLookupTableDescriptor(Uint16 &value, const unsigned long pos = 0) const;
 
+        /** get ColorSpace (0028,2002)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getColorSpace(OFString &value, const signed long pos = 0) const;
+
         /** get Columns (0028,0011)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -274,6 +281,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
          */
         OFCondition setBluePaletteColorLookupTableDescriptor(const Uint16 value, const unsigned long pos = 0);
 
+        /** set ColorSpace (0028,2002)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue);
+
         /** set Columns (0028,0011)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -392,6 +406,8 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
         DcmOtherByteOtherWord BluePaletteColorLookupTableData;
         /// BluePaletteColorLookupTableDescriptor (0028,1103) vr=US/SS, vm=3, type=1C
         DcmUnsignedShort BluePaletteColorLookupTableDescriptor;
+        /// ColorSpace (0028,2002) vr=CS, vm=1, type=3
+        DcmCodeString ColorSpace;
         /// Columns (0028,0011) vr=US, vm=1, type=1
         DcmUnsignedShort Columns;
         /// GreenPaletteColorLookupTableData (0028,1202) vr=OW, vm=1, type=1C
@@ -408,7 +424,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
         DcmCodeString PhotometricInterpretation;
         /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C
         DcmIntegerString PixelAspectRatio;
-        /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
+        /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1
         DcmPixelData PixelData;
         /// PixelRepresentation (0028,0103) vr=US, vm=1, type=1
         DcmUnsignedShort PixelRepresentation;
index 60405a4c4c0a9ef8d08564d25fb3e23ce95e7f8e..6b6b36d00c2435a3b3907f28d649438d4e0e9bf9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfPatientIDQualifiersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0cd39696f862a7cfab2792f522e7871d490f204d..5eec2b3b3c07a466831974f81ee5bae2be163d71 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonRangeCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index bc19b3eb7c906adb6fcbb3b9d359c64f0a08b49b..45bb3ebc42bc2bf3937135f31854e913f6f94b0f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfServiceEpisodeIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 957209a9cb6b872e9c3f5e51cfdf3529475f0097..412c98f8507463ad1d179d8241d9b14a57cff2b8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -105,6 +105,48 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition getBeamLimitingDeviceAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get ChairHeadFramePositionTolerance (300a,0153)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePositionTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get ChairHeadFramePositionTolerance (300a,0153)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get FixationLightAzimuthalAngleTolerance (300a,0154)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get FixationLightAzimuthalAngleTolerance (300a,0154)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get FixationLightPolarAngleTolerance (300a,0155)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightPolarAngleTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get FixationLightPolarAngleTolerance (300a,0155)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
+
         /** get GantryAngleTolerance (300a,0044)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -119,6 +161,20 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition getGantryAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get HeadFixationAngleTolerance (300a,0152)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getHeadFixationAngleTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get HeadFixationAngleTolerance (300a,0152)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
+
         /** get PatientSupportAngleTolerance (300a,004c)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -240,6 +296,27 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition setBeamLimitingDeviceAngleTolerance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ChairHeadFramePositionTolerance (300a,0153)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setChairHeadFramePositionTolerance(const OFString &value, const OFBool check = OFTrue);
+
+        /** set FixationLightAzimuthalAngleTolerance (300a,0154)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check = OFTrue);
+
+        /** set FixationLightPolarAngleTolerance (300a,0155)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check = OFTrue);
+
         /** set GantryAngleTolerance (300a,0044)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -247,6 +324,13 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition setGantryAngleTolerance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set HeadFixationAngleTolerance (300a,0152)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setHeadFixationAngleTolerance(const OFString &value, const OFBool check = OFTrue);
+
         /** set PatientSupportAngleTolerance (300a,004c)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -319,8 +403,16 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
         DcmDecimalString BeamLimitingDeviceAngleTolerance;
         /// BeamLimitingDeviceToleranceSequence (300a,0048) vr=SQ, vm=1, type=3
         DRTBeamLimitingDeviceToleranceSequence BeamLimitingDeviceToleranceSequence;
+        /// ChairHeadFramePositionTolerance (300a,0153) vr=DS, vm=1, type=3
+        DcmDecimalString ChairHeadFramePositionTolerance;
+        /// FixationLightAzimuthalAngleTolerance (300a,0154) vr=DS, vm=1, type=3
+        DcmDecimalString FixationLightAzimuthalAngleTolerance;
+        /// FixationLightPolarAngleTolerance (300a,0155) vr=DS, vm=1, type=3
+        DcmDecimalString FixationLightPolarAngleTolerance;
         /// GantryAngleTolerance (300a,0044) vr=DS, vm=1, type=3
         DcmDecimalString GantryAngleTolerance;
+        /// HeadFixationAngleTolerance (300a,0152) vr=DS, vm=1, type=3
+        DcmDecimalString HeadFixationAngleTolerance;
         /// PatientSupportAngleTolerance (300a,004c) vr=DS, vm=1, type=3
         DcmDecimalString PatientSupportAngleTolerance;
         /// SnoutPositionTolerance (300a,004b) vr=FL, vm=1, type=3
index fb5df8b0d6343616b6312d565f9df221d5dd0d1a..841245b0db8e252f7a66a2381e652cdc29141a89 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 5e4800c4ec6bea2983452f23a0033b60ad3320c9..e0bf71d4f1e39cc6791ff1771ca768aea6fd66fc 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0bd66a70b6b8c03e1d8585f7172bb76d8867d8b8..aebc3a41087a0e41461304e3fba4b6e0bdf2500d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 45ec9aa980436b472c17f02e38edeb4b82b07096..c04e588675378e2b344b936419d60d1b6cd2226d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4f57af6c1573f772c187f20f751d8c92158744ba..696a95e4d1216023977f780946a0b8e7ba02141a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9ebcc72763b35d609ba792bdcb305268395ad45f..941ec5f9742cb29a28f837b623ee909956385233 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 040061c5a9f81cabfccb83d94a4800b9d4007095..337a1740e363a2e29df40734559e7ce371370a4d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTModifiedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4b6cd5059083b056f5bdf1473a8efafdc3844f93..0f349ab14684d0ca1e514f2ea75b45c1918d2ab7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3fab93e0b735115e1d79597377e8b7cf76cd84f1..cd52606ea948d25771ffb486022504104cd07e36 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTModalityLUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -153,13 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1C
+        /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1
         DcmOtherByteOtherWord LUTData;
-        /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1C
+        /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1
         DcmUnsignedShort LUTDescriptor;
         /// LUTExplanation (0028,3003) vr=LO, vm=1, type=3
         DcmLongString LUTExplanation;
-        /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1C
+        /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1
         DcmLongString ModalityLUTType;
 
     };
index 8cb09f28f84dde2a17fab1cf8d375e69aba42ef7..1fa56672f419570382330b09845a5fb3750c938c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMACParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h
new file mode 100644 (file)
index 0000000..8f1c50f
--- /dev/null
@@ -0,0 +1,334 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTMappingResourceIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTMRIS_H
+#define DRTMRIS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+
+
+/** Interface class for MappingResourceIdentificationSequence (0008,0124)
+ */
+class DCMTK_DCMRT_EXPORT DRTMappingResourceIdentificationSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceUID (0008,0118)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
+
+      // --- set DICOM attribute values ---
+
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceUID (0008,0118)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTMappingResourceIdentificationSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTMappingResourceIdentificationSequence &operator=(const DRTMappingResourceIdentificationSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 586f153a27a199446e26ca9443c8423bf0883c26..2cac77d09cd7355f5c474ae88b5ada8cf924c8db 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMotionSynchronizationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6f73d7218f48f9e675a3a4e8d84321f82f28991b..523f4608b1849e86bf6674f159de3f8f550d9563 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMeasurementUnitsCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index b0de7e0e249c9eb30e68be5bee3732fa127f9515..f6ca951fcdf8089c5264bed4ea3f2b62a094202d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOriginalAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 68c33b91d1cf90c20801458f6a0e069d6656f250..78238b6e687db6fd7b0af3b6c4e263010ab5f35d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOperatorIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c1f068f8852134c488fb63e90d068251a0cd870c..471a183da4f2c3bcd0e90062022f88d5cd6db44e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOtherPatientIDsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index eee419e02ca88dd206f5ed5b88a7aaa1f266dd21..ec2edaa99feadd2a80e2e9d1e7230bfe16f2ac75 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOverrideSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -19,6 +19,7 @@
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 
 
 /** Interface class for OverrideSequence (3008,0060)
@@ -132,6 +133,20 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence
          */
         OFCondition getParameterSequencePointer(OFString &value, const signed long pos = 0) const;
 
+      // --- get DICOM sequence attributes ---
+
+        /** get OperatorIdentificationSequence (0008,1072)
+         *  @return reference to sequence element
+         */
+        DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+            { return OperatorIdentificationSequence; }
+
+        /** get OperatorIdentificationSequence (0008,1072)
+         *  @return const reference to sequence element
+         */
+        const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+            { return OperatorIdentificationSequence; }
+
       // --- set DICOM attribute values ---
 
         /** set OperatorsName (0008,1070)
@@ -174,6 +189,8 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+        DRTOperatorIdentificationSequence OperatorIdentificationSequence;
         /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
         DcmPersonName OperatorsName;
         /// OverrideParameterPointer (3008,0062) vr=AT, vm=1, type=1
index a044d0227093cd0e84e9f2d027d41aad3eaaaa15..193b509d8aa509989a52a44b4e89b259ac7cbdcf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientBreedCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 06942a6bb8c7761d8fb7d70fabf9e40fdf08db34..1eea6c2a9d68bf2aebae9eeb4c48b314f42c6068 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index db5baa5162270ef67e4e7ddbed68db57a1ec0f84..5021cbee579eb94fcbf7684cee1b84f02b88ee79 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTProtocolContextSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 7cbca8a6b84fcee86da5fc7f0c9b8d9cc8dfc936..40d62df53e9b256e0f625efb19573ddea9ee35c5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPrivateDataElementCharacteristicsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -20,6 +20,7 @@
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtdias.h"   // for DeidentificationActionSequence
+#include "dcmtk/dcmrt/seq/drtpdeds.h"  // for PrivateDataElementDefinitionSequence
 
 
 /** Interface class for PrivateDataElementCharacteristicsSequence (0008,0300)
@@ -133,6 +134,18 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence
         const DRTDeidentificationActionSequence &getDeidentificationActionSequence() const
             { return DeidentificationActionSequence; }
 
+        /** get PrivateDataElementDefinitionSequence (0008,0310)
+         *  @return reference to sequence element
+         */
+        DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence()
+            { return PrivateDataElementDefinitionSequence; }
+
+        /** get PrivateDataElementDefinitionSequence (0008,0310)
+         *  @return const reference to sequence element
+         */
+        const DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence() const
+            { return PrivateDataElementDefinitionSequence; }
+
       // --- set DICOM attribute values ---
 
         /** set BlockIdentifyingInformationStatus (0008,0303)
@@ -176,6 +189,8 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence
         DcmUnsignedShort NonidentifyingPrivateElements;
         /// PrivateCreatorReference (0008,0302) vr=LO, vm=1, type=1
         DcmLongString PrivateCreatorReference;
+        /// PrivateDataElementDefinitionSequence (0008,0310) vr=SQ, vm=1, type=3
+        DRTPrivateDataElementDefinitionSequence PrivateDataElementDefinitionSequence;
         /// PrivateGroupReference (0008,0301) vr=US, vm=1, type=1
         DcmUnsignedShort PrivateGroupReference;
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h
new file mode 100644 (file)
index 0000000..4cf4694
--- /dev/null
@@ -0,0 +1,430 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTPrivateDataElementDefinitionSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTPDEDS_H
+#define DRTPDEDS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+
+
+/** Interface class for PrivateDataElementDefinitionSequence (0008,0310)
+ */
+class DCMTK_DCMRT_EXPORT DRTPrivateDataElementDefinitionSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get PrivateDataElement (0008,0308)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElement(Uint16 &value, const unsigned long pos = 0) const;
+
+        /** get PrivateDataElementDescription (0008,030e)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementDescription(OFString &value, const signed long pos = 0) const;
+
+        /** get PrivateDataElementEncoding (0008,030f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementEncoding(OFString &value, const signed long pos = 0) const;
+
+        /** get PrivateDataElementKeyword (0008,030d)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementKeyword(OFString &value, const signed long pos = 0) const;
+
+        /** get PrivateDataElementName (0008,030c)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementName(OFString &value, const signed long pos = 0) const;
+
+        /** get PrivateDataElementNumberOfItems (0008,030b)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos = 0) const;
+
+        /** get PrivateDataElementValueMultiplicity (0008,0309)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos = 0) const;
+
+        /** get PrivateDataElementValueRepresentation (0008,030a)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPrivateDataElementValueRepresentation(OFString &value, const signed long pos = 0) const;
+
+        /** get RetrieveURI (0040,e010)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getRetrieveURI(OFString &value, const signed long pos = 0) const;
+
+      // --- set DICOM attribute values ---
+
+        /** set PrivateDataElement (0008,0308)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElement(const Uint16 value, const unsigned long pos = 0);
+
+        /** set PrivateDataElementDescription (0008,030e)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementDescription(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PrivateDataElementEncoding (0008,030f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementEncoding(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PrivateDataElementKeyword (0008,030d)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementKeyword(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PrivateDataElementName (0008,030c)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PrivateDataElementNumberOfItems (0008,030b)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1-2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos = 0);
+
+        /** set PrivateDataElementValueMultiplicity (0008,0309)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1-3
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos = 0);
+
+        /** set PrivateDataElementValueRepresentation (0008,030a)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check = OFTrue);
+
+        /** set RetrieveURI (0040,e010)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setRetrieveURI(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// PrivateDataElement (0008,0308) vr=US, vm=1, type=1
+        DcmUnsignedShort PrivateDataElement;
+        /// PrivateDataElementDescription (0008,030e) vr=UT, vm=1, type=3
+        DcmUnlimitedText PrivateDataElementDescription;
+        /// PrivateDataElementEncoding (0008,030f) vr=UT, vm=1, type=3
+        DcmUnlimitedText PrivateDataElementEncoding;
+        /// PrivateDataElementKeyword (0008,030d) vr=UC, vm=1, type=1
+        DcmUnlimitedCharacters PrivateDataElementKeyword;
+        /// PrivateDataElementName (0008,030c) vr=UC, vm=1, type=1
+        DcmUnlimitedCharacters PrivateDataElementName;
+        /// PrivateDataElementNumberOfItems (0008,030b) vr=UL, vm=1-2, type=1C
+        DcmUnsignedLong PrivateDataElementNumberOfItems;
+        /// PrivateDataElementValueMultiplicity (0008,0309) vr=UL, vm=1-3, type=1
+        DcmUnsignedLong PrivateDataElementValueMultiplicity;
+        /// PrivateDataElementValueRepresentation (0008,030a) vr=CS, vm=1, type=1
+        DcmCodeString PrivateDataElementValueRepresentation;
+        /// RetrieveURI (0040,e010) vr=UR, vm=1, type=3
+        DcmUniversalResourceIdentifierOrLocator RetrieveURI;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTPrivateDataElementDefinitionSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTPrivateDataElementDefinitionSequence &operator=(const DRTPrivateDataElementDefinitionSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 6a2c74419ebf2a4aeda07afe9523c415492bd535..1b588eb195f263f5a8f846e2a630ba05dc630926 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPrimaryFluenceModeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 183791493ef2daf312cffea83ccba9bcee5d4b2e..40aa6758db90c6e250a91cb0fd6541c7171eed70 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPersonIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 3f60799ad0bffeedb5e78dfe5f720a050f41638b..becf513611c6620dbfbcebf7d9e74cdb7c16a1d9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPurposeOfReferenceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index c320ab3d0b33121d74d4335e5c37e57aeac1de6a..4df74d94030cec959f33a0d3a11dbd1da40d3e26 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPhysiciansOfRecordIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 61d23144e86e5ea763ea4c621044009d43566809..776c9189f406fd79aa978283a15f2ccee35c6391 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPerformedProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -347,6 +361,8 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3
index 77a56c7d43fae31e2b4bc780e6f66e56e8abe382..46ecf79b4f3626ce78d4a018e8bd4e7130c5ddf0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPhysiciansReadingStudyIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4e449dda2f901e74db9fe01bfe21750423a88427..23954282a093f046e64447aef21143534b8ea9d4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientSpeciesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 4b782662a880ad9c3c7b50bfd29f65a8b0d3c88c..0badc0952681ecac0396147a52b569477ca26ee0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientSizeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 8686840944cb9de8e20d30864b9026fd7098f645..4cb5bd74273c8e4365a992cba6e856e82d55c8d6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2d03e6c0b25532e41543d767f96abb32b40e6ea1..af423cf13a6eaf391d2466aee8fd25e6e9a9e593 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPredecessorStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b0ec5873555308d6df1d112366db70e045bb8519..a0e115d60339c56f720a1abcbbee431e894986a7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPlannedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 510cac7f60b1d4c274efa9a757005b78f6ed1c0a..854f84bfd8f18b75ac42f4c301bd4419e86047c5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTQuantityDefinitionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 93c3fb56d556061ee9e2d2b0400c5b7151fb2ab1..1a47bca21533f526b0ca92daf27ebdd13156c899 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRequestAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index cd7017b06a223232031d14d0a4a403a1b924cba2..83388b4e054c967caba27f90132b532ee69157dd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9bd023c9e499f3e870de56aa3081f1d293295f82..d845bb786cca16f5d7d8f2ca98621230bd46217d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2fe40143b9a1ebfc3147d976648f60225906fc6c..7a106548d9614ffbc61d9f7c6eae01bf00cdeb0c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ddf9cd54a64e78234ab1c97a0bd9736276245f90..602cddc10a697b637ddf2738b280be7071831297 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBolusSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 50524c87735aa32557a5726156165647c1b82c3f..b2d3c8508bbdac7cfcea979476b7d20d29168fc4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBolusSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2f63cf4f21f7d6e1fed8fd3853f5b64e23bbc497..4ecd78e8cb80047b66c28b60fc71dece1e189428 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ff393304bb2518d9400c9d1e464ec574f7294611..847bb0372594a8fca34a558394a29dd7ec29fede 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBeamSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4eb30e686f62aa4214d9f67525b01539605df959..4ad6d467e3b8de2a9cf19e235308e82fa8acad45 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -91,6 +91,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
 
       // --- get DICOM attribute values ---
 
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const;
+
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get AlternateBeamDoseType (300a,0092)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -132,6 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
          */
         OFCondition getBeamDoseSpecificationPoint(OFVector<Float64> &value) const;
 
+        /** get BeamDoseType (300a,0090)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamMeterset (300a,0086)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -176,6 +204,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
 
       // --- set DICOM attribute values ---
 
+        /** set AlternateBeamDose (300a,0091)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue);
+
+        /** set AlternateBeamDoseType (300a,0092)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -197,6 +239,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
          */
         OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue);
 
+        /** set BeamDoseType (300a,0090)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamMeterset (300a,0086)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -216,12 +265,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3
+        DcmDecimalString AlternateBeamDose;
+        /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C
+        DcmCodeString AlternateBeamDoseType;
         /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3
         DcmFloatingPointDouble BeamDeliveryDurationLimit;
         /// BeamDose (300a,0084) vr=DS, vm=1, type=3
         DcmDecimalString BeamDose;
         /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3
         DcmDecimalString BeamDoseSpecificationPoint;
+        /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C
+        DcmCodeString BeamDoseType;
         /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3
         DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence;
         /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3
index 335d75e867391a2d88442fc93b3d3807a7d351db..d2b2de94b90473b2547d0d5e2de8a05ff6b58ee0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBeamSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -91,6 +91,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
 
       // --- get DICOM attribute values ---
 
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const;
+
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get AlternateBeamDoseType (300a,0092)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -132,6 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
          */
         OFCondition getBeamDoseSpecificationPoint(OFVector<Float64> &value) const;
 
+        /** get BeamDoseType (300a,0090)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamMeterset (300a,0086)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -176,6 +204,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
 
       // --- set DICOM attribute values ---
 
+        /** set AlternateBeamDose (300a,0091)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue);
+
+        /** set AlternateBeamDoseType (300a,0092)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -197,6 +239,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
          */
         OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue);
 
+        /** set BeamDoseType (300a,0090)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamMeterset (300a,0086)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -216,12 +265,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3
+        DcmDecimalString AlternateBeamDose;
+        /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C
+        DcmCodeString AlternateBeamDoseType;
         /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3
         DcmFloatingPointDouble BeamDeliveryDurationLimit;
         /// BeamDose (300a,0084) vr=DS, vm=1, type=3
         DcmDecimalString BeamDose;
         /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3
         DcmDecimalString BeamDoseSpecificationPoint;
+        /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C
+        DcmCodeString BeamDoseType;
         /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3
         DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence;
         /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3
index 8928e896a45dacb8eacec5b50bb5c93bf7c08550..b1a5d6be27fefd08768d808480e229943653956f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index eba6728e1f055f0b619bbd5198a33bccd59cf1a7..df9de9361c79b140a66d3f2987a3331d2ba1aa8d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9f1e4961c908ea6b4b938b5e18636b146a5f3393..4e0d78cddcdd2de590066822cb5f076fca7bd850 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d24f3e92c05000b718e77dff1271956490a949bd..34e869e505439e351039ffa84115c2127e3a1307 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTROIContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 80bfbe0b8733e271f3973634b792b0872ad1c421..8fa3fc41fc33286e02534361d7191d732731026b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTDoseROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 31738280adb42e22fbf1c7c80a2415b6ec1ca0a1..7b088a8429c85ea827e18e9b5a61bb69ddaec8ef 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 173208475054ec47685327176c1985b4545ba94e..3a8c733d4231f7e92247cedb4304f05ae0352607 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 119e77f7c09e73e83a53141ed61bac174df2faac..34792c282da4747d0016e0ddedb57393473c9e80 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 40e6bca8681817979208d6df217b43e21f59fb9c..79c37549a65b95b4440cfc0f1a312bbbc4f4fd48 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 20b6b1ee41ac9a9744dd647a7915bf4bfc23e7d7..e29b110ee5d9b29fdc5f5a89b93af9496eb966c4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTROIElementalCompositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 79fad8666ac9c1d2853411eaeb9c32d9efa1a42c..8c92e11e2c36f0652bbd8fd44c6e58411e9ed9ae 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 514fb87ca9bf946cde92b5e53c492408bd338dea..a7fb0ee8c4790a10b3959fbac72175a555f1359f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedFrameOfReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2aee19aa5a53dd6e6cfa0a3f3883afd6cf666339..a9effc214894485ac420c0f50ea49b6bbfc46d93 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTROIIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -20,6 +20,7 @@
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
+#include "dcmtk/dcmrt/seq/drtsptcs.h"  // for SegmentedPropertyTypeModifierCodeSequence
 
 
 /** Interface class for RTROIIdentificationCodeSequence (3006,0086)
@@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -203,6 +211,18 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
         const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
             { return EquivalentCodeSequence; }
 
+        /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011)
+         *  @return reference to sequence element
+         */
+        DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence()
+            { return SegmentedPropertyTypeModifierCodeSequence; }
+
+        /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011)
+         *  @return const reference to sequence element
+         */
+        const DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence() const
+            { return SegmentedPropertyTypeModifierCodeSequence; }
+
       // --- set DICOM attribute values ---
 
         /** set CodeMeaning (0008,0104)
@@ -289,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,8 +361,12 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
+        /// SegmentedPropertyTypeModifierCodeSequence (0062,0011) vr=SQ, vm=1, type=3
+        DRTSegmentedPropertyTypeModifierCodeSequence SegmentedPropertyTypeModifierCodeSequence;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
         DcmUniversalResourceIdentifierOrLocator URNCodeValue;
 
index c5cc089606cc0d4aa6fc2659f6f4954108dcf1fe..b801ced9d4c5cd67cce8c041b948f0493e146126 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e02c599427208a543ed2d269521e7fc086f55277..c89bc6536f732cb1686cf3249dbc4efcfc0ed166 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedInstanceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c802d6de691c7e04ae1ac10c980f3992cebdd5a8..192cc4bd23587e8cd39137b417d915daea0e44cc 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b8e7da6d930d549aaa5a7f04c209545eef71da01..df27a494c53e25a9cf573eece0ee6e372dc02f22 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f45f87e1be8cae8965f982dc807010a89f81ae43..c1828e4a464f757297f3d58dc3324bc51b3283bc 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9cf6e015fe89acce8f1ede7e9f1812853213bd57..92026ba30216ca4335945f621133abdd299fd44f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f0356b7072fe4a9584fc7008b1c568a26ab650f0..3eb715f66b0f0576ad7f36e12655fb7da3da804a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 75b8e93e99167d0a61b46a3d519842fdf9e65b0a..1ad4adf5854a783812876e4ace80610abda0fe08 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 4f466b19f67660906388dcd6a9ec6a6b689af9ae..ee163ff2f64ab48f1ea96399b475d9b0d83852a6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferringPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 165744dfe1810e5b48ff1d76d71f8602d82a08c1..eb52d056414296ff9cf778fedea6472cb8a1e708 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReasonForPerformedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index d726488587aa44d88539c5132374763d28529e99..4b838399b700a28b3d2f1435dbe978c6e39c0da1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedPatientPhotoSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 193865cdf21989e8f3c01d91c3677694f2db2d63..b3cf227987241d8e80382e4d32501cce7dc124bc 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTROIPhysicalPropertiesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 7d241776adee83501a439e3711bd3ff84cf4659e..15205b12a3466edc3d8ded3d9c47f0abec436cfb 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedPerformedProcedureStepSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 921b6149013722c4990e4dcb32f3954a2f39a2d4..53271deb97cd4523ded1887f95bf438c3a4e340f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedPatientSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ac4456badf302e7bf2ac96baafd37d72f408ef8a..71be5a15210ebeec3204df35f9aa74e1517790a7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedReferenceImageSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ffd2638e7c7fe2de5da938fdb102277a39dfc927..f82e1735c2701db40882ea2cb3d702eeb4d94c34 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 08e660af754fec928cac4362815cf19d72ea3877..713ea30b8122524356c4daec3dceee2fcdd8c4be 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d6bbcf570c7c20b82245104e53d88de3c721b5a4..32da6559e4b17d886df30163582f4a6e394678a6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e2c9b7f54cb85b3ee52c6374e452d19991b10637..d6a79323fc0ad50606dedfbad3303cd050c3ccdf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -19,7 +19,6 @@
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
-#include "dcmtk/dcmrt/seq/drtarics.h"  // for AdditionalRTROIIdentificationCodeSequence
 #include "dcmtk/dcmrt/seq/drtrpps.h"   // for ROIPhysicalPropertiesSequence
 #include "dcmtk/dcmrt/seq/drtrics.h"   // for RTROIIdentificationCodeSequence
 #include "dcmtk/dcmrt/seq/drtrrs.h"    // for RTRelatedROISequence
@@ -161,18 +160,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence
 
       // --- get DICOM sequence attributes ---
 
-        /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9)
-         *  @return reference to sequence element
-         */
-        DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence()
-            { return AdditionalRTROIIdentificationCodeSequence; }
-
-        /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9)
-         *  @return const reference to sequence element
-         */
-        const DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence() const
-            { return AdditionalRTROIIdentificationCodeSequence; }
-
         /** get ROIPhysicalPropertiesSequence (3006,00b0)
          *  @return reference to sequence element
          */
@@ -289,8 +276,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// AdditionalRTROIIdentificationCodeSequence (3006,00b9) vr=SQ, vm=1, type=3
-        DRTAdditionalRTROIIdentificationCodeSequence AdditionalRTROIIdentificationCodeSequence;
         /// MaterialID (300a,00e1) vr=SH, vm=1, type=3
         DcmShortString MaterialID;
         /// ObservationNumber (3006,0082) vr=IS, vm=1, type=1
index 2b34845354af2039a5d46e903b1281d3da69f3bc..e7424fb77581358fdc39453284266a2bf1aa6084 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReasonForRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index d37493c10610336a1af39a22aa94e7a569f0decb..6e7e97212166c04f013fd374429b01fe13600668 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRelatedRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 471d72fd05ddf9e397edc7ed5985cfda8dd2efe3..b769374f9c069176c1e3af2f8be7a062f0cccd96 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTRelatedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index bb9f495fcad2504a6901e39b46625a6ea570c5e4..e4f6d1740ef8853f13bd1f27b9d6db0baff38f34 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0b9a7ec7dc57ca2001cbd9f8b35d79005da1a0f2..ce710ab550786a903a08af4edb4d28de5a466509 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 73272e94ff7b4a9da942e6468c224e31e94a18a6..58331932a53e23473bfcb761a987e148bab7733b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 7e5706f0c0ee1c5432bb200203726ac164d49f31..a84d994f8e4d133b84ac2d7c40031ade1836bcce 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index db4fe1fd34cf19d2fe89288407eaa24338b38446..b18050e51cce69d05c76ac06e56acb1671866f06 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4ee81149a249009bf28fc53c4a66228c1d951f8b..d176d7c2d1a205eca66604fc0aba520a5b785a5a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRequestingServiceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index a0e546ea59cdbb7c4d6a9c76e3d314df613c0ae8..413d21780e47255dfdad47c315f710a81fe4d2a7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b6aabfd9693fe2f1d2f42038b1e4dc43d2c89049..1826f4a6e28f3d45bbf999141dd3e52bf5d6fd9e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e7f5d447aaa5cbed5f80db60be24ab531e20f510..4c268a09aeb168acf5d5de41e85e9f831f067628 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 7476aafed5c185a30aa7edba6a40387d472b933f..41704e358030771e8b3f50af92948a15e411a5c4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 51d0ec05e975d1da32f0583183e44af6e0a36263..77076d2a60e2799a8749593019e6124cdf8a4eca 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index cc41a4fd9386952b815f9bbc5c2dce32d1660212..d735232e4a70a959797450468dd8ce2fc06df067 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSetupImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6339f1e351f4439e5947f0878487b677fc85c8c8..748776d3b6eaafc8c6c3abe0c94b137d33792483 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 31275ea42c32a6ed24a2ff3133dd31d5df3764b2..c6a9d95ee82a127a54b4ff8345425190327516d2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSOPSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 40fd3035dd12173e1be158111fa8a2558f8609f3..7ec47af451e25aa5ce07e7c630651a1c089ea2da 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSpatialRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c8bb63cb2aa885f7ef92c6d05d0938d8846f6017..55b2de37455c5b4e91ad7a85ad56137ba799c120 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4bff060fe005c03a85e2dcb8e55a2862f98f8976..16a5406f1d5aa6d5b202bc1d102af8f6edc3c4c0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 524f0aad9c055c8ff4d3428aa84e459e2448fb03..2012fb8e8c7663095a60818741ecd923158290da 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0697321b54113dc05097e2f71825b4eda9c5cc9a..2636e43a2fadf02274edb33ca245602503748a18 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2a18110d0581f674cb4fa48e1a3cff91639d6765..2c75810238d79cb7e2eef0c9b54352eadc459fb8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 61a716fa893756f64ad209acb88ad783872b571f..995290d461a81ba625742b5f67b46ed13a5e4147 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1d1e6ff288023129efafd8afd436b86b170dcd4a..bbb677a057d9e07191b68869d3c5c1dd2dbdf843 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b9f903712daf950848137946f78ea955d0746174..e83721a00a650c8282c25204f680b87209c6ca35 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRealWorldValueMappingSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -92,6 +92,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
 
       // --- get DICOM attribute values ---
 
+        /** get DoubleFloatRealWorldValueFirstValueMapped (0040,9214)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get DoubleFloatRealWorldValueLastValueMapped (0040,9213)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos = 0) const;
+
         /** get LUTExplanation (0028,3003)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -169,6 +183,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
 
       // --- set DICOM attribute values ---
 
+        /** set DoubleFloatRealWorldValueFirstValueMapped (0040,9214)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos = 0);
+
+        /** set DoubleFloatRealWorldValueLastValueMapped (0040,9213)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos = 0);
+
         /** set LUTExplanation (0028,3003)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -223,6 +251,10 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// DoubleFloatRealWorldValueFirstValueMapped (0040,9214) vr=FD, vm=1, type=1C
+        DcmFloatingPointDouble DoubleFloatRealWorldValueFirstValueMapped;
+        /// DoubleFloatRealWorldValueLastValueMapped (0040,9213) vr=FD, vm=1, type=1C
+        DcmFloatingPointDouble DoubleFloatRealWorldValueLastValueMapped;
         /// LUTExplanation (0028,3003) vr=LO, vm=1, type=1
         DcmLongString LUTExplanation;
         /// LUTLabel (0040,9210) vr=SH, vm=1, type=1
@@ -231,13 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
         DRTMeasurementUnitsCodeSequence MeasurementUnitsCodeSequence;
         /// QuantityDefinitionSequence (0040,9220) vr=SQ, vm=1, type=3
         DRTQuantityDefinitionSequence QuantityDefinitionSequence;
-        /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1
+        /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1C
         DcmUnsignedShort RealWorldValueFirstValueMapped;
         /// RealWorldValueIntercept (0040,9224) vr=FD, vm=1, type=1C
         DcmFloatingPointDouble RealWorldValueIntercept;
         /// RealWorldValueLUTData (0040,9212) vr=FD, vm=1-n, type=1C
         DcmFloatingPointDouble RealWorldValueLUTData;
-        /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1
+        /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1C
         DcmUnsignedShort RealWorldValueLastValueMapped;
         /// RealWorldValueSlope (0040,9225) vr=FD, vm=1, type=1C
         DcmFloatingPointDouble RealWorldValueSlope;
index 70c5a4cd8dcf983e1cc87e16993efc624ea5bb9d..1e3590d393d4e6bd64d15cd324ac08f40b9f0f60 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTStudiesContainingOtherReferencedInstancesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h
new file mode 100644 (file)
index 0000000..8bc9359
--- /dev/null
@@ -0,0 +1,543 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTStrainCodeSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTSCS_H
+#define DRTSCS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
+
+
+/** Interface class for StrainCodeSequence (0010,0219)
+ */
+class DCMTK_DCMRT_EXPORT DRTStrainCodeSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get CodeMeaning (0008,0104)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const;
+
+        /** get CodeValue (0008,0100)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodeValue(OFString &value, const signed long pos = 0) const;
+
+        /** get CodingSchemeDesignator (0008,0102)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const;
+
+        /** get CodingSchemeVersion (0008,0103)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupLocalVersion (0008,0107)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupVersion (0008,0106)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextIdentifier (0008,010f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextUID (0008,0117)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
+
+        /** get LongCodeValue (0008,0119)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceUID (0008,0118)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
+
+        /** get URNCodeValue (0008,0120)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get EquivalentCodeSequence (0008,0121)
+         *  @return reference to sequence element
+         */
+        DRTEquivalentCodeSequence &getEquivalentCodeSequence()
+            { return EquivalentCodeSequence; }
+
+        /** get EquivalentCodeSequence (0008,0121)
+         *  @return const reference to sequence element
+         */
+        const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
+            { return EquivalentCodeSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set CodeMeaning (0008,0104)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodeValue (0008,0100)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodingSchemeDesignator (0008,0102)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodingSchemeVersion (0008,0103)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupLocalVersion (0008,0107)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupVersion (0008,0106)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextIdentifier (0008,010f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextUID (0008,0117)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set LongCodeValue (0008,0119)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceUID (0008,0118)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set URNCodeValue (0008,0120)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1
+        DcmLongString CodeMeaning;
+        /// CodeValue (0008,0100) vr=SH, vm=1, type=1C
+        DcmShortString CodeValue;
+        /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C
+        DcmShortString CodingSchemeDesignator;
+        /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C
+        DcmShortString CodingSchemeVersion;
+        /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C
+        DcmUniqueIdentifier ContextGroupExtensionCreatorUID;
+        /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3
+        DcmCodeString ContextGroupExtensionFlag;
+        /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupLocalVersion;
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
+        /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3
+        DRTEquivalentCodeSequence EquivalentCodeSequence;
+        /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C
+        DcmUnlimitedCharacters LongCodeValue;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
+        /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
+        DcmUniversalResourceIdentifierOrLocator URNCodeValue;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTStrainCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTStrainCodeSequence(const DRTStrainCodeSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTStrainCodeSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTStrainCodeSequence &operator=(const DRTStrainCodeSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 52646b8ff1c4700ca2ed91b290aad8e1f6e47620..55e5970b8b8e7cd2295f0bd6f5fe39b73a79a789 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSeriesDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 06db62c6f31f744dfcc4e87ba0fc815315d91a35..9a1aa0567dfa40269ece1f7175d88b5a43997a5b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSetupDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a66db0df18f53b902ea512ec1bbe69aa800c93c7..30e1f0ef167af4346783deffde6192b590bcf770 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTShieldingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h
new file mode 100644 (file)
index 0000000..4665d52
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTSourceInstanceSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTSINS_H
+#define DRTSINS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtporcs.h"  // for PurposeOfReferenceCodeSequence
+
+
+/** Interface class for SourceInstanceSequence (0042,0013)
+ */
+class DCMTK_DCMRT_EXPORT DRTSourceInstanceSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get ReferencedSOPClassUID (0008,1150)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getReferencedSOPClassUID(OFString &value, const signed long pos = 0) const;
+
+        /** get ReferencedSOPInstanceUID (0008,1155)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getReferencedSOPInstanceUID(OFString &value, const signed long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get PurposeOfReferenceCodeSequence (0040,a170)
+         *  @return reference to sequence element
+         */
+        DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence()
+            { return PurposeOfReferenceCodeSequence; }
+
+        /** get PurposeOfReferenceCodeSequence (0040,a170)
+         *  @return const reference to sequence element
+         */
+        const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const
+            { return PurposeOfReferenceCodeSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set ReferencedSOPClassUID (0008,1150)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setReferencedSOPClassUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ReferencedSOPInstanceUID (0008,1155)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setReferencedSOPInstanceUID(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=3
+        DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence;
+        /// ReferencedSOPClassUID (0008,1150) vr=UI, vm=1, type=1
+        DcmUniqueIdentifier ReferencedSOPClassUID;
+        /// ReferencedSOPInstanceUID (0008,1155) vr=UI, vm=1, type=1
+        DcmUniqueIdentifier ReferencedSOPInstanceUID;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTSourceInstanceSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTSourceInstanceSequence(const DRTSourceInstanceSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTSourceInstanceSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTSourceInstanceSequence &operator=(const DRTSourceInstanceSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 967bda6e6cd9ce9dd47f54a992791932c81510d2..56759d56425a03bcffe443de18df50f8bda4acd4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSourceImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index db03a312caf905f112a9bc2d0930c5ab2396e1f5..65cef9880f8aa08a096ac4af711bbe99ce743d75 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6ec77c839749cc9992d562668286f47f096558a2..1902411f714a8aa1c47abbaf10fa87be0ad3b7ee 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSegmentedPropertyCategoryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
index 075109f714ffe3c80b1c281e34ed1963d5c6524a..e74a4db5baa745cb6fc6889828401866664b3a74 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTScheduledProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -347,6 +361,8 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h
new file mode 100644 (file)
index 0000000..fe8b8d4
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTSourcePatientGroupIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTSPGIS_H
+#define DRTSPGIS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
+
+
+/** Interface class for SourcePatientGroupIdentificationSequence (0010,0026)
+ */
+class DCMTK_DCMRT_EXPORT DRTSourcePatientGroupIdentificationSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get IssuerOfPatientID (0010,0021)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
+
+        /** get PatientID (0010,0020)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getPatientID(OFString &value, const signed long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get IssuerOfPatientIDQualifiersSequence (0010,0024)
+         *  @return reference to sequence element
+         */
+        DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence()
+            { return IssuerOfPatientIDQualifiersSequence; }
+
+        /** get IssuerOfPatientIDQualifiersSequence (0010,0024)
+         *  @return const reference to sequence element
+         */
+        const DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() const
+            { return IssuerOfPatientIDQualifiersSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set IssuerOfPatientID (0010,0021)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set PatientID (0010,0020)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// IssuerOfPatientID (0010,0021) vr=LO, vm=1, type=3
+        DcmLongString IssuerOfPatientID;
+        /// IssuerOfPatientIDQualifiersSequence (0010,0024) vr=SQ, vm=1, type=3
+        DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
+        /// PatientID (0010,0020) vr=LO, vm=1, type=1
+        DcmLongString PatientID;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTSourcePatientGroupIdentificationSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTSourcePatientGroupIdentificationSequence &operator=(const DRTSourcePatientGroupIdentificationSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h
new file mode 100644 (file)
index 0000000..520279d
--- /dev/null
@@ -0,0 +1,543 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTSegmentedPropertyTypeModifierCodeSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTSPTCS_H
+#define DRTSPTCS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
+
+
+/** Interface class for SegmentedPropertyTypeModifierCodeSequence (0062,0011)
+ */
+class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyTypeModifierCodeSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get CodeMeaning (0008,0104)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const;
+
+        /** get CodeValue (0008,0100)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodeValue(OFString &value, const signed long pos = 0) const;
+
+        /** get CodingSchemeDesignator (0008,0102)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const;
+
+        /** get CodingSchemeVersion (0008,0103)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupLocalVersion (0008,0107)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupVersion (0008,0106)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextIdentifier (0008,010f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextUID (0008,0117)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
+
+        /** get LongCodeValue (0008,0119)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceUID (0008,0118)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
+
+        /** get URNCodeValue (0008,0120)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get EquivalentCodeSequence (0008,0121)
+         *  @return reference to sequence element
+         */
+        DRTEquivalentCodeSequence &getEquivalentCodeSequence()
+            { return EquivalentCodeSequence; }
+
+        /** get EquivalentCodeSequence (0008,0121)
+         *  @return const reference to sequence element
+         */
+        const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
+            { return EquivalentCodeSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set CodeMeaning (0008,0104)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodeValue (0008,0100)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodingSchemeDesignator (0008,0102)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodingSchemeVersion (0008,0103)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupLocalVersion (0008,0107)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupVersion (0008,0106)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextIdentifier (0008,010f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextUID (0008,0117)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set LongCodeValue (0008,0119)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceUID (0008,0118)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set URNCodeValue (0008,0120)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1
+        DcmLongString CodeMeaning;
+        /// CodeValue (0008,0100) vr=SH, vm=1, type=1C
+        DcmShortString CodeValue;
+        /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C
+        DcmShortString CodingSchemeDesignator;
+        /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C
+        DcmShortString CodingSchemeVersion;
+        /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C
+        DcmUniqueIdentifier ContextGroupExtensionCreatorUID;
+        /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3
+        DcmCodeString ContextGroupExtensionFlag;
+        /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupLocalVersion;
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
+        /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3
+        DRTEquivalentCodeSequence EquivalentCodeSequence;
+        /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C
+        DcmUnlimitedCharacters LongCodeValue;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
+        /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
+        DcmUniversalResourceIdentifierOrLocator URNCodeValue;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTSegmentedPropertyTypeModifierCodeSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTSegmentedPropertyTypeModifierCodeSequence &operator=(const DRTSegmentedPropertyTypeModifierCodeSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 418ba831b279e293eaa534f85a2a5930843aed89..a49ddb2850e9a4096b659ec6c1f2140ebd444b21 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h
new file mode 100644 (file)
index 0000000..70c7818
--- /dev/null
@@ -0,0 +1,543 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTStrainSourceRegistryCodeSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTSSRCS_H
+#define DRTSSRCS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
+
+
+/** Interface class for StrainSourceRegistryCodeSequence (0010,0215)
+ */
+class DCMTK_DCMRT_EXPORT DRTStrainSourceRegistryCodeSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get CodeMeaning (0008,0104)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const;
+
+        /** get CodeValue (0008,0100)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodeValue(OFString &value, const signed long pos = 0) const;
+
+        /** get CodingSchemeDesignator (0008,0102)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const;
+
+        /** get CodingSchemeVersion (0008,0103)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupLocalVersion (0008,0107)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupVersion (0008,0106)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextIdentifier (0008,010f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextUID (0008,0117)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
+
+        /** get LongCodeValue (0008,0119)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceUID (0008,0118)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
+
+        /** get URNCodeValue (0008,0120)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get EquivalentCodeSequence (0008,0121)
+         *  @return reference to sequence element
+         */
+        DRTEquivalentCodeSequence &getEquivalentCodeSequence()
+            { return EquivalentCodeSequence; }
+
+        /** get EquivalentCodeSequence (0008,0121)
+         *  @return const reference to sequence element
+         */
+        const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
+            { return EquivalentCodeSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set CodeMeaning (0008,0104)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodeValue (0008,0100)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodingSchemeDesignator (0008,0102)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue);
+
+        /** set CodingSchemeVersion (0008,0103)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupLocalVersion (0008,0107)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupVersion (0008,0106)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextIdentifier (0008,010f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextUID (0008,0117)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set LongCodeValue (0008,0119)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceUID (0008,0118)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set URNCodeValue (0008,0120)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1
+        DcmLongString CodeMeaning;
+        /// CodeValue (0008,0100) vr=SH, vm=1, type=1C
+        DcmShortString CodeValue;
+        /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C
+        DcmShortString CodingSchemeDesignator;
+        /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C
+        DcmShortString CodingSchemeVersion;
+        /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C
+        DcmUniqueIdentifier ContextGroupExtensionCreatorUID;
+        /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3
+        DcmCodeString ContextGroupExtensionFlag;
+        /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupLocalVersion;
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
+        /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3
+        DRTEquivalentCodeSequence EquivalentCodeSequence;
+        /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C
+        DcmUnlimitedCharacters LongCodeValue;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
+        /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
+        DcmUniversalResourceIdentifierOrLocator URNCodeValue;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTStrainSourceRegistryCodeSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTStrainSourceRegistryCodeSequence &operator=(const DRTStrainSourceRegistryCodeSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index 5c8780238dd5300676ce0acda0b3ac1f404a91de..495bb273de55fd38d8d56e852ab8d962fbe6ca11 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTStructureSetROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h
new file mode 100644 (file)
index 0000000..11ddef4
--- /dev/null
@@ -0,0 +1,335 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTStrainStockSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTSSS_H
+#define DRTSSS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtssrcs.h"  // for StrainSourceRegistryCodeSequence
+
+
+/** Interface class for StrainStockSequence (0010,0216)
+ */
+class DCMTK_DCMRT_EXPORT DRTStrainStockSequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get StrainSource (0010,0217)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getStrainSource(OFString &value, const signed long pos = 0) const;
+
+        /** get StrainStockNumber (0010,0214)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getStrainStockNumber(OFString &value, const signed long pos = 0) const;
+
+      // --- get DICOM sequence attributes ---
+
+        /** get StrainSourceRegistryCodeSequence (0010,0215)
+         *  @return reference to sequence element
+         */
+        DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence()
+            { return StrainSourceRegistryCodeSequence; }
+
+        /** get StrainSourceRegistryCodeSequence (0010,0215)
+         *  @return const reference to sequence element
+         */
+        const DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence() const
+            { return StrainSourceRegistryCodeSequence; }
+
+      // --- set DICOM attribute values ---
+
+        /** set StrainSource (0010,0217)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setStrainSource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set StrainStockNumber (0010,0214)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setStrainStockNumber(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// StrainSource (0010,0217) vr=LO, vm=1, type=1
+        DcmLongString StrainSource;
+        /// StrainSourceRegistryCodeSequence (0010,0215) vr=SQ, vm=1, type=1
+        DRTStrainSourceRegistryCodeSequence StrainSourceRegistryCodeSequence;
+        /// StrainStockNumber (0010,0214) vr=LO, vm=1, type=1
+        DcmLongString StrainStockNumber;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTStrainStockSequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTStrainStockSequence(const DRTStrainStockSequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTStrainStockSequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTStrainStockSequence &operator=(const DRTStrainStockSequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index d226e577b5542d697fe6ed473b94f362f4388b4c..1d4e5ada4409c84c7bea4d4b602198b3b5c207f5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f05b97a5af81155cfebf051ebf59229d950d1d63..ce4ef25156e21ac2403d750b883c620c1b7fb9ce 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e02148025fdca7ea8f7030d9f8cfa88fe393339e..0f025c25e90be475eed776bd9cec376a816486e9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a76b0076f80f8b1ee986127034fdb732bb343a4f..375d45ae846b7e07dd85f1c72700fc9e9d030c71 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSessionIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,6 +21,7 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtas7.h"    // for ApplicatorSequence
 #include "dcmtk/dcmrt/seq/drtbldls.h"  // for BeamLimitingDeviceLeafPairsSequence
+#include "dcmtk/dcmrt/seq/drtdddps.h"  // for DeliveredDepthDoseParametersSequence
 #include "dcmtk/dcmrt/seq/drtgas.h"    // for GeneralAccessorySequence
 #include "dcmtk/dcmrt/seq/drticpds.h"  // for IonControlPointDeliverySequence
 #include "dcmtk/dcmrt/seq/drtrbls.h"   // for RecordedBlockSequence
@@ -182,6 +183,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition getDeliveredTreatmentTime(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get FixationEye (300a,0150)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationEye(OFString &value, const signed long pos = 0) const;
+
         /** get FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -196,6 +204,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition getFixationLightPolarAngle(Float32 &value, const unsigned long pos = 0) const;
 
+        /** get ModulatedScanModeType (300a,0309)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const;
+
         /** get NumberOfBlocks (300a,00f0)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -516,6 +531,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
         const DRTBeamLimitingDeviceLeafPairsSequence &getBeamLimitingDeviceLeafPairsSequence() const
             { return BeamLimitingDeviceLeafPairsSequence; }
 
+        /** get DeliveredDepthDoseParametersSequence (300a,0506)
+         *  @return reference to sequence element
+         */
+        DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence()
+            { return DeliveredDepthDoseParametersSequence; }
+
+        /** get DeliveredDepthDoseParametersSequence (300a,0506)
+         *  @return const reference to sequence element
+         */
+        const DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence() const
+            { return DeliveredDepthDoseParametersSequence; }
+
         /** get GeneralAccessorySequence (300a,0420)
          *  @return reference to sequence element
          */
@@ -723,6 +750,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition setDeliveredTreatmentTime(const OFString &value, const OFBool check = OFTrue);
 
+        /** set FixationEye (300a,0150)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue);
+
         /** set FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -737,6 +771,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition setFixationLightPolarAngle(const Float32 value, const unsigned long pos = 0);
 
+        /** set ModulatedScanModeType (300a,0309)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue);
+
         /** set NumberOfBlocks (300a,00f0)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -936,12 +977,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
         DcmCodeString BeamType;
         /// CurrentFractionNumber (3008,0022) vr=IS, vm=1, type=2
         DcmIntegerString CurrentFractionNumber;
+        /// DeliveredDepthDoseParametersSequence (300a,0506) vr=SQ, vm=1, type=3
+        DRTDeliveredDepthDoseParametersSequence DeliveredDepthDoseParametersSequence;
         /// DeliveredPrimaryMeterset (3008,0036) vr=DS, vm=1, type=3
         DcmDecimalString DeliveredPrimaryMeterset;
         /// DeliveredSecondaryMeterset (3008,0037) vr=DS, vm=1, type=3
         DcmDecimalString DeliveredSecondaryMeterset;
         /// DeliveredTreatmentTime (3008,003b) vr=DS, vm=1, type=3
         DcmDecimalString DeliveredTreatmentTime;
+        /// FixationEye (300a,0150) vr=CS, vm=1, type=3
+        DcmCodeString FixationEye;
         /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3
         DcmFloatingPointSingle FixationLightAzimuthalAngle;
         /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3
@@ -950,6 +995,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
         DRTGeneralAccessorySequence GeneralAccessorySequence;
         /// IonControlPointDeliverySequence (3008,0041) vr=SQ, vm=1, type=1
         DRTIonControlPointDeliverySequence IonControlPointDeliverySequence;
+        /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C
+        DcmCodeString ModulatedScanModeType;
         /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1
         DcmIntegerString NumberOfBlocks;
         /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1
index 6bab8b340fe6ed3db3038213e677d632d1c97055..756dd180bf9d0add24e866c954b499c78ead39b1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c3073b3f9bc8eb8c519f7367659a1c9cd03f0a3a..d08bf5ba5bcf175b5744ec4d2ff644453bba763e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h
new file mode 100644 (file)
index 0000000..938702e
--- /dev/null
@@ -0,0 +1,318 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Header file for class DRTUDISequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#ifndef DRTUDIS_H
+#define DRTUDIS_H
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/ofstd/oflist.h"        // for standard list class
+#include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+
+
+/** Interface class for UDISequence (0018,100a)
+ */
+class DCMTK_DCMRT_EXPORT DRTUDISequence
+  : protected DRTTypes
+{
+
+  public:
+
+    /** Item class
+     */
+    class DCMTK_DCMRT_EXPORT Item
+      : protected DRTTypes
+    {
+
+      public:
+
+      // --- constructors, destructor and operators ---
+
+        /** (default) constructor
+         *  @param emptyDefaultItem flag used to mark the empty default item
+         */
+        Item(const OFBool emptyDefaultItem = OFFalse);
+
+        /** copy constructor
+         *  @param copy item object to be copied
+         */
+        Item(const Item &copy);
+
+        /** destructor
+         */
+        virtual ~Item();
+
+        /** assigment operator
+         *  @param copy item object to be copied
+         */
+        Item &operator=(const Item &copy);
+
+      // --- general methods ---
+
+        /** clear all internal member variables
+         */
+        void clear();
+
+        /** check if item is empty
+         *  @return OFTrue if item is empty, OFFalse otherwise
+         */
+        OFBool isEmpty();
+
+        /** check if item is valid, i.e.\ not the empty default item
+         *  @return OFTrue if item is valid, OFFalse otherwise
+         */
+        OFBool isValid() const;
+
+      // --- input/output methods ---
+
+        /** read elements from sequence item
+         *  @param  item    reference to DICOM sequence item from which the elements should be read
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition read(DcmItem &item);
+
+        /** write elements to sequence item
+         *  @param  item    reference to DICOM sequence item to which the elements should be written
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition write(DcmItem &item);
+
+      // --- get DICOM attribute values ---
+
+        /** get DeviceDescription (0050,0020)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDeviceDescription(OFString &value, const signed long pos = 0) const;
+
+        /** get UniqueDeviceIdentifier (0018,1009)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getUniqueDeviceIdentifier(OFString &value, const signed long pos = 0) const;
+
+      // --- set DICOM attribute values ---
+
+        /** set DeviceDescription (0050,0020)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDeviceDescription(const OFString &value, const OFBool check = OFTrue);
+
+        /** set UniqueDeviceIdentifier (0018,1009)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setUniqueDeviceIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+      private:
+
+        /// internal flag used to mark the empty default item
+        /*const*/ OFBool EmptyDefaultItem;
+
+        /// DeviceDescription (0050,0020) vr=LO, vm=1, type=3
+        DcmLongString DeviceDescription;
+        /// UniqueDeviceIdentifier (0018,1009) vr=UT, vm=1, type=1
+        DcmUnlimitedText UniqueDeviceIdentifier;
+
+    };
+
+  // --- constructors, destructor and operators ---
+
+    /** (default) constructor
+     *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
+     */
+    DRTUDISequence(const OFBool emptyDefaultSequence = OFFalse);
+
+    /** copy constructor
+     *  @param copy sequence object to be copied
+     */
+    DRTUDISequence(const DRTUDISequence &copy);
+
+    /** destructor
+     */
+    virtual ~DRTUDISequence();
+
+    /** assigment operator
+     *  @param copy sequence object to be copied
+     */
+    DRTUDISequence &operator=(const DRTUDISequence &copy);
+
+  // --- general methods ---
+
+    /** clear all internal member variables
+     */
+    void clear();
+
+    /** check if sequence is empty
+     *  @return OFTrue if sequence is empty, OFFalse otherwise
+     */
+    OFBool isEmpty();
+
+    /** check if sequence is valid, i.e.\ not the empty default sequence
+     *  @return OFTrue if sequence is valid, OFFalse otherwise
+     */
+    OFBool isValid() const;
+
+    /** get number of items in the sequence
+     *  @return number of items
+     */
+    unsigned long getNumberOfItems() const;
+
+    /** goto first item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoFirstItem();
+
+    /** goto next item in the sequence
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoNextItem();
+
+    /** goto particular item in the sequence
+     *  @param  num  number of the item to be selected (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num);
+
+    /** get current item in the sequence
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getCurrentItem(Item *&item) const;
+
+    /** get current item in the sequence
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getCurrentItem();
+
+    /** get current item in the sequence
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getCurrentItem() const;
+
+    /** get particular item in the sequence
+     *  @param  num   number of the item to be retrieved (0..num-1)
+     *  @param  item  reference to item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItem(const unsigned long num, Item *&item);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &getItem(const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &getItem(const unsigned long num) const;
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return reference to specified item if successful, empty default item otherwise
+     */
+    Item &operator[](const unsigned long num);
+
+    /** get particular item in the sequence
+     *  @param  num  number of the item to be retrieved (0..num-1)
+     *  @return const reference to specified item if successful, empty default item otherwise
+     */
+    const Item &operator[](const unsigned long num) const;
+
+    /** add new item to the end of this sequence
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition addItem(Item *&item);
+
+    /** insert new item into the sequence
+     *  @param  pos   position where the new item is to be inserted (0..num)
+     *  @param  item  reference to new item pointer (result variable)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition insertItem(const unsigned long pos, Item *&item);
+
+    /** remove particular item from the sequence
+     *  @param  pos  position of the item to be removed (0..num-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition removeItem(const unsigned long pos);
+
+  // --- input/output methods ---
+
+    /** read sequence of items from dataset
+     *  @param  dataset     reference to DICOM dataset from which the sequence should be read
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "1C", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition read(DcmItem &dataset,
+                     const OFString &card,
+                     const OFString &type,
+                     const char *moduleName = NULL);
+
+    /** write sequence of items to dataset
+     *  @param  dataset     reference to DICOM dataset to which the sequence should be written
+     *  @param  card        cardinality (valid range for number of items)
+     *  @param  type        value type (valid value: "1", "2" or something else which is not checked)
+     *  @param  moduleName  optional module/sequence name to be printed (default: "RT object" if NULL)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition write(DcmItem &dataset,
+                      const OFString &card,
+                      const OFString &type,
+                      const char *moduleName = NULL);
+
+  protected:
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListIterator(Item *) &iterator);
+
+    /** goto particular item in the sequence
+     *  @param  num       number of the item to be selected (0..num-1)
+     *  @param  iterator  list iterator storing the position of the item
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition gotoItem(const unsigned long num,
+                         OFListConstIterator(Item *) &iterator) const;
+
+  private:
+
+    /// internal flag used to mark the empty default sequence
+    /*const*/ OFBool EmptyDefaultSequence;
+
+    /// list of items in this sequence
+    OFList<Item *>         SequenceOfItems;
+    /// currently selected item
+    OFListIterator(Item *) CurrentItem;
+    /// empty default item
+    Item                   EmptyItem;
+
+};
+
+
+#endif
index c2374d6bc3af9199bf1541833ff38293ad6f5027..3c46a9d1c4fc383566a2ac898f581e4e721613fa 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTVOILUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 62fcd5624065fa5800d57556c97baab40c5e6618..c85bb893a65dbe335b158d29a52c3d5936525e7e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e1c2a36ecffb1b22d3a36c3ce865f3c4396de347..ce1e5573e1eb7775faab1a33d630a6f980d3eb71 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWADORetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 964ba62897e770917efecc15a6fc67065c792e33..0fbc16c25d4e27216cd4d8d6ccde309813e4c27e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWADORSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 215e57c6fed7b947dff4a0b22e46dc8acac1c7b6..08a3dcf65d33e776804c44a531753decb408316c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 162768db54d5ecd9bf9b8f421fbd8c655d2acd57..0a6e554dab4940e453e5f7ac1d1acc627f226d52 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTXDSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c0447c3883337a0caff0d123be25c7e4c7921d30..ab2835641c24df8462c4e97ab527ef6b8c2d1a99 100644 (file)
@@ -1,4 +1,4 @@
 # create library from source files
-DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtarics drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss drtdcs drtdias drtdimcs drtdimrs drtdirs drtdrs drtds drtdspcs drtdss drtdvhs drtdvrrs drteas drtecs drtes drtfds drtfes drtfgs drtfgss drtfms drtfsss drtgas drthsdrs drtiais drtians drtiblds drtibls drtibs drticpds drticps drtics drtiis drtipiqs drtircs drtiseis drtitts drtiwps drtiws drtlsds6 drtlsds7 drtlsds drtmacds drtmas drtmdrs drtmls drtmps drtmss drtmucs drtoas drtois drtopis drtos drtpbcs drtpcs drtpcxs drtpdecs drtpfms drtpics drtporcs drtporis drtppcs drtprsis drtpscs drtpsics drtpss drtpsss drtpvis drtqds drtras drtrbas2 drtrbas8 drtrbls drtrbos1 drtrbos6 drtrbos7 drtrbs2 drtrbs4 drtrbs8 drtrcdrs drtrcos drtrcps drtrcs drtrdros drtrdrs1 drtrdrs6 drtrdrs8 drtrds drtrecs drtrfgs drtrfors drtrics drtrims drtris drtrlsds drtrmdrs drtrms drtrmss6 drtrmss7 drtrpcs drtrpis drtrppcs drtrpphs drtrpps drtrppss drtrps drtrris1 drtrris6 drtrris9 drtrrms drtrros drtrrpcs drtrrros drtrrs drtrrshs drtrrtps3 drtrrtps4 drtrrtps5 drtrrtps drtrscs drtrsers drtrses drtrshs6 drtrshs7 drtrshs drtrsis drtrsns drtrsos drtrsrs drtrss drtrsss drtrsts drtrtrs2 drtrtrs4 drtrvis drtwrsrs drtrws drtrwvms drtscris drtsdcs drtsds drtshds drtsis drtsns drtspccs drtspcs drtss drtssrs drttms0 drttms9 drttscds drttsibs drttsmds drttts drtvls drtwps drtwrs drtws drtxrs)
+DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtcgis drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss drtdcs drtdddps drtddps drtdias drtdimcs drtdimrs drtdirs drtdrs drtds drtdspcs drtdss drtdvhs drtdvrrs drteas drtecs drtes drtfds drtfes drtfgs drtfgss drtfms drtfsss drtgas drtgpis drthsdrs drtiais drtians drtiblds drtibls drtibs drticpds drticps drtics drtiis drtipiqs drtircs drtiseis drtitts drtiwps drtiws drtlsds6 drtlsds7 drtlsds drtmacds drtmas drtmdrs drtmls drtmps drtmris drtmss drtmucs drtoas drtois drtopis drtos drtpbcs drtpcs drtpcxs drtpdecs drtpdeds drtpfms drtpics drtporcs drtporis drtppcs drtprsis drtpscs drtpsics drtpss drtpsss drtpvis drtqds drtras drtrbas2 drtrbas8 drtrbls drtrbos1 drtrbos6 drtrbos7 drtrbs2 drtrbs4 drtrbs8 drtrcdrs drtrcos drtrcps drtrcs drtrdros drtrdrs1 drtrdrs6 drtrdrs8 drtrds drtrecs drtrfgs drtrfors drtrics drtrims drtris drtrlsds drtrmdrs drtrms drtrmss6 drtrmss7 drtrpcs drtrpis drtrppcs drtrpphs drtrpps drtrppss drtrps drtrris1 drtrris6 drtrris9 drtrrms drtrros drtrrpcs drtrrros drtrrs drtrrshs drtrrtps3 drtrrtps4 drtrrtps5 drtrrtps drtrscs drtrsers drtrses drtrshs6 drtrshs7 drtrshs drtrsis drtrsns drtrsos drtrsrs drtrss drtrsss drtrsts drtrtrs2 drtrtrs4 drtrvis drtwrsrs drtrws drtrwvms drtscris drtscs drtsdcs drtsds drtshds drtsins drtsis drtsns drtspccs drtspcs drtspgis drtsptcs drtss drtssrcs drtssrs drtsss drttms0 drttms9 drttscds drttsibs drttsmds drttts drtudis drtvls drtwps drtwrs drtws drtxrs)
 
 DCMTK_TARGET_LINK_MODULES(dcmrt ofstd oflog dcmdata dcmimgle)
index e85cb72121c01d7d8e3239fa9d999e6c1c07e6c0..ccb5d23103f11be7bef2d14648f5270aabfa88ee 100644 (file)
@@ -119,7 +119,8 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
@@ -129,16 +130,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -152,17 +154,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -184,9 +186,13 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtssrs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h \
  ../../ofstd/include/dcmtk/ofstd/ofbmanip.h
 drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/drmimage.h ../include/dcmtk/dcmrt/drtimage.h \
@@ -310,6 +316,7 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
  ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h \
  ../include/dcmtk/dcmrt/seq/drtcbars.h \
  ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
  ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \
@@ -324,15 +331,16 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtblds5.h \
  ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
- ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h \
  ../include/dcmtk/dcmrt/seq/drtmacds.h \
  ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \
  ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
@@ -348,7 +356,9 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
@@ -369,8 +379,12 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
  ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drtvls.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h \
  ../../dcmimgle/include/dcmtk/dcmimgle/dcmimage.h \
  ../../dcmimgle/include/dcmtk/dcmimgle/dimoimg.h \
  ../../dcmimgle/include/dcmtk/dcmimgle/diimage.h \
@@ -525,27 +539,30 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
  ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
  ../include/dcmtk/dcmrt/seq/drtbvcps.h \
  ../include/dcmtk/dcmrt/seq/drtrbas8.h \
  ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
  ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
  ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
@@ -561,8 +578,11 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -572,18 +592,22 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../include/dcmtk/dcmrt/seq/drttts.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drmsrch.h
+ ../include/dcmtk/dcmrt/seq/drttms9.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h
 drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/drmstrct.h ../include/dcmtk/dcmrt/drtstrct.h \
  ../include/dcmtk/dcmrt/drttypes.h \
@@ -705,23 +729,25 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -735,19 +761,23 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtrros.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
  ../include/dcmtk/dcmrt/seq/drtrses.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -756,15 +786,20 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrps.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drmsrch.h
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h
 drtaadcs.o: drtaadcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -1459,123 +1494,6 @@ drtajcs.o: drtajcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtarics.o: drtarics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/oftypes.h \
- ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
- ../../ofstd/include/dcmtk/ofstd/ofcast.h \
- ../../ofstd/include/dcmtk/ofstd/ofexport.h \
- ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../include/dcmtk/dcmrt/drttypes.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../ofstd/include/dcmtk/ofstd/ofstring.h \
- ../../ofstd/include/dcmtk/ofstd/ofvector.h \
- ../../oflog/include/dcmtk/oflog/oflog.h \
- ../../oflog/include/dcmtk/oflog/logger.h \
- ../../oflog/include/dcmtk/oflog/config.h \
- ../../oflog/include/dcmtk/oflog/config/defines.h \
- ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
- ../../oflog/include/dcmtk/oflog/loglevel.h \
- ../../oflog/include/dcmtk/oflog/tstring.h \
- ../../oflog/include/dcmtk/oflog/tchar.h \
- ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
- ../../oflog/include/dcmtk/oflog/appender.h \
- ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
- ../../oflog/include/dcmtk/oflog/layout.h \
- ../../oflog/include/dcmtk/oflog/streams.h \
- ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
- ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
- ../../oflog/include/dcmtk/oflog/spi/filter.h \
- ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
- ../../oflog/include/dcmtk/oflog/spi/logfact.h \
- ../../oflog/include/dcmtk/oflog/logmacro.h \
- ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
- ../../oflog/include/dcmtk/oflog/tracelog.h \
- ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
- ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
- ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
- ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
- ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
- ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h
 drtas1.o: drtas1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtas1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -4709,8 +4627,8 @@ drtces.o: drtces.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h
-drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtchs.h \
+drtcgis.o: drtcgis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -4823,12 +4741,9 @@ drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbcps.h \
- ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
- ../include/dcmtk/dcmrt/seq/drtcshs.h
-drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtchs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -4942,12 +4857,11 @@ drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtbcps.h \
+ ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtcshs.h
+drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5060,9 +4974,13 @@ drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
  ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5175,10 +5093,9 @@ drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcos.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5291,9 +5208,10 @@ drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcpas.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5407,8 +5325,8 @@ drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h \
+drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcpas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5521,11 +5439,9 @@ drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5639,11 +5555,10 @@ drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h
-drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcs.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5757,9 +5672,11 @@ drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h
-drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h
+drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5872,9 +5789,10 @@ drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcshs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtcis.h
+drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5988,8 +5906,8 @@ drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
+drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcshs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6103,8 +6021,8 @@ drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h \
+drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6217,10 +6135,9 @@ drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6335,8 +6252,8 @@ drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h \
+drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6449,9 +6366,10 @@ drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdddps.o: drtdddps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6564,10 +6482,9 @@ drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtddps.o: drtddps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtddps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6681,8 +6598,8 @@ drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
+drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6796,14 +6713,16 @@ drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \
+drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -6830,7 +6749,6 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -6910,82 +6828,9 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdvhs.h \
- ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpsss.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
- ../include/dcmtk/dcmrt/seq/drtrdros.h \
- ../include/dcmtk/dcmrt/seq/drtrwvms.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrfors.h \
- ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps.h \
- ../include/dcmtk/dcmrt/seq/drtrfgs.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h
-drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7099,8 +6944,8 @@ drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtds.h \
+drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7213,18 +7058,15 @@ drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -7251,6 +7093,7 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -7330,9 +7173,88 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdvhs.h \
+ ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpsss.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtrdros.h \
+ ../include/dcmtk/dcmrt/seq/drtrwvms.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrfors.h \
+ ../include/dcmtk/dcmrt/seq/drtrsts.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps.h \
+ ../include/dcmtk/dcmrt/seq/drtrfgs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7445,11 +7367,9 @@ drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdvhs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7563,9 +7483,9 @@ drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdvrrs.h
-drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7678,9 +7598,10 @@ drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7793,9 +7714,11 @@ drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdvhs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7908,9 +7831,10 @@ drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdvrrs.h
+drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8023,15 +7947,11 @@ drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
- ../include/dcmtk/dcmrt/seq/drtblds5.h \
- ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h
-drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
@@ -8143,8 +8063,8 @@ drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfes.h \
+drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8258,8 +8178,8 @@ drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfgs.h \
+drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtes.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8373,13 +8293,12 @@ drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrbs8.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h
-drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfgss.h \
+ ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
+ ../include/dcmtk/dcmrt/seq/drtblds5.h \
+ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h
+drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8492,10 +8411,9 @@ drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtfsss.h
-drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfms.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfes.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8609,8 +8527,8 @@ drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfsss.h \
+drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfgs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8723,9 +8641,14 @@ drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h
+drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfgss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8838,9 +8761,10 @@ drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtfsss.h
+drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8954,8 +8878,8 @@ drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9069,8 +8993,8 @@ drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
+drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9184,8 +9108,8 @@ drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiblds.h \
+drtgpis.o: drtgpis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9298,9 +9222,13 @@ drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtibls.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9413,10 +9341,9 @@ drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbss.h
-drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtibs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9529,26 +9456,9 @@ drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtiblds.h \
- ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
- ../include/dcmtk/dcmrt/seq/drticps.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds6.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
- ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
- ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
- ../include/dcmtk/dcmrt/seq/drtrshs.h \
- ../include/dcmtk/dcmrt/seq/drtrbos6.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h \
- ../include/dcmtk/dcmrt/seq/drtrris6.h \
- ../include/dcmtk/dcmrt/seq/drtsns.h
-drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drticpds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9661,15 +9571,9 @@ drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtcpas.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
- ../include/dcmtk/dcmrt/seq/drtrmss7.h \
- ../include/dcmtk/dcmrt/seq/drtrshs7.h
-drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiblds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9782,15 +9686,9 @@ drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds6.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h
-drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtibls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9904,9 +9802,9 @@ drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h \
+ ../include/dcmtk/dcmrt/seq/drtbss.h
+drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtibs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10019,15 +9917,35 @@ drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtddps.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtiblds.h \
+ ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
+ ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
+ ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos6.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h \
+ ../include/dcmtk/dcmrt/seq/drtrris6.h \
+ ../include/dcmtk/dcmrt/seq/drtsns.h
+drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drticpds.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -10054,7 +9972,6 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -10134,82 +10051,24 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h \
- ../include/dcmtk/dcmrt/seq/drtcbars.h \
- ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
- ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \
- ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
- ../include/dcmtk/dcmrt/seq/drtblds5.h \
- ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
- ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtmacds.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrwvms.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drtvls.h
-drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtcpas.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss7.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs7.h
+drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -10236,7 +10095,6 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -10316,95 +10174,1666 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtiblds.h \
- ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
- ../include/dcmtk/dcmrt/seq/drticps.h \
  ../include/dcmtk/dcmrt/seq/drtbldps.h \
  ../include/dcmtk/dcmrt/seq/drtiwps.h \
  ../include/dcmtk/dcmrt/seq/drtlsds6.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
- ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
- ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
- ../include/dcmtk/dcmrt/seq/drtrshs.h \
- ../include/dcmtk/dcmrt/seq/drtrbos6.h \
- ../include/dcmtk/dcmrt/seq/drtrris6.h \
- ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \
- ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h
-drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h
+drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h \
+ ../include/dcmtk/dcmrt/seq/drtcbars.h \
+ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
+ ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \
+ ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \
+ ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
+ ../include/dcmtk/dcmrt/seq/drtblds5.h \
+ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
+ ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h \
+ ../include/dcmtk/dcmrt/seq/drtmacds.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrwvms.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h
+drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \
+ ../include/dcmtk/dcmrt/seq/drtddps.h ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtiblds.h \
+ ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
+ ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
+ ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos6.h \
+ ../include/dcmtk/dcmrt/seq/drtrris6.h \
+ ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \
+ ../include/dcmtk/dcmrt/seq/drtbldts.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \
+ ../include/dcmtk/dcmrt/seq/drtfsss.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmdrs.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drttms0.h \
+ ../include/dcmtk/dcmrt/seq/drttsibs.h \
+ ../include/dcmtk/dcmrt/seq/drtas7.h \
+ ../include/dcmtk/dcmrt/seq/drtbldls.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drticpds.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtcpas.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss7.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs7.h \
+ ../include/dcmtk/dcmrt/seq/drtrbls.h \
+ ../include/dcmtk/dcmrt/seq/drtrcos.h \
+ ../include/dcmtk/dcmrt/seq/drtrlsds.h \
+ ../include/dcmtk/dcmrt/seq/drtrrms.h \
+ ../include/dcmtk/dcmrt/seq/drtrrshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos7.h \
+ ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrvis.h \
+ ../include/dcmtk/dcmrt/seq/drttscds.h \
+ ../include/dcmtk/dcmrt/seq/drttsmds.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtircs.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtitts.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtbldts.h
+drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiws.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -10431,7 +11860,6 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -10510,94 +11938,9 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcdrs.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \
- ../include/dcmtk/dcmrt/seq/drtfsss.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmdrs.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drttms0.h \
- ../include/dcmtk/dcmrt/seq/drttsibs.h \
- ../include/dcmtk/dcmrt/seq/drtas7.h \
- ../include/dcmtk/dcmrt/seq/drtbldls.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drticpds.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtcpas.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
- ../include/dcmtk/dcmrt/seq/drtrmss7.h \
- ../include/dcmtk/dcmrt/seq/drtrshs7.h \
- ../include/dcmtk/dcmrt/seq/drtrbls.h \
- ../include/dcmtk/dcmrt/seq/drtrcos.h \
- ../include/dcmtk/dcmrt/seq/drtrlsds.h \
- ../include/dcmtk/dcmrt/seq/drtrrms.h \
- ../include/dcmtk/dcmrt/seq/drtrrshs.h \
- ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \
- ../include/dcmtk/dcmrt/seq/drtrbos7.h \
- ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
- ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
- ../include/dcmtk/dcmrt/seq/drtrvis.h \
- ../include/dcmtk/dcmrt/seq/drttscds.h \
- ../include/dcmtk/dcmrt/seq/drttsmds.h
-drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10710,12 +12053,9 @@ drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
- ../include/dcmtk/dcmrt/seq/drtajcs.h
-drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtircs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmacds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10828,9 +12168,10 @@ drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h
+drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10944,8 +12285,8 @@ drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtitts.h \
+drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11058,10 +12399,9 @@ drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldts.h
-drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11175,8 +12515,8 @@ drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiws.h \
+drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11290,8 +12630,8 @@ drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtlsds.h \
+drtmris.o: drtmris.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmris.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11405,8 +12745,8 @@ drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11520,8 +12860,8 @@ drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtlsds7.h \
+drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11634,9 +12974,10 @@ drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmacds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11750,9 +13091,9 @@ drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h
-drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h
+drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11865,9 +13206,11 @@ drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11980,9 +13323,13 @@ drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmls.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12095,9 +13442,11 @@ drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h
+drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12209,10 +13558,11 @@ drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12325,9 +13675,10 @@ drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12441,9 +13792,13 @@ drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12557,9 +13912,10 @@ drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h
-drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h
+drtpdeds.o: drtpdeds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12672,11 +14028,9 @@ drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12789,13 +14143,9 @@ drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
- ../include/dcmtk/dcmrt/seq/drtajcs.h
-drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12908,17 +14258,16 @@ drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -12945,6 +14294,7 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -13024,9 +14374,99 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
+ ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
+ ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtcshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \
+ ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \
+ ../include/dcmtk/dcmrt/seq/drtblds1.h \
+ ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \
+ ../include/dcmtk/dcmrt/seq/drtcps.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos1.h \
+ ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
  ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drttts.h \
+ ../include/dcmtk/dcmrt/seq/drtbldts.h \
+ ../include/dcmtk/dcmrt/seq/drttms9.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13141,8 +14581,8 @@ drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h \
+drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13256,13 +14696,10 @@ drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13376,9 +14813,13 @@ drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h
-drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13491,9 +14932,11 @@ drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13608,14 +15051,16 @@ drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \
+drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -13642,7 +15087,6 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -13722,89 +15166,9 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
- ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
- ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
- ../include/dcmtk/dcmrt/seq/drtcshs.h \
- ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \
- ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \
- ../include/dcmtk/dcmrt/seq/drtblds1.h \
- ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \
- ../include/dcmtk/dcmrt/seq/drtcps.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h \
- ../include/dcmtk/dcmrt/seq/drtrbos1.h \
- ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drttts.h \
- ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drttms9.h
-drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13918,9 +15282,11 @@ drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h
+drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14033,11 +15399,9 @@ drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpvis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14150,14 +15514,9 @@ drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14271,10 +15630,12 @@ drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14388,9 +15749,18 @@ drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14503,10 +15873,9 @@ drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14619,12 +15988,9 @@ drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h
-drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpsss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14738,8 +16104,8 @@ drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpvis.h \
+drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14853,8 +16219,8 @@ drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h \
+drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14967,13 +16333,9 @@ drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15086,19 +16448,9 @@ drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15211,9 +16563,10 @@ drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h
+drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs4.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15326,9 +16679,10 @@ drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbls.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h
+drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs8.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15441,9 +16795,10 @@ drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbos1.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h
+drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15557,8 +16912,8 @@ drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbos6.h \
+drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15672,8 +17027,8 @@ drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbos7.h \
+drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15787,8 +17142,8 @@ drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15902,9 +17257,9 @@ drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h
-drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbs4.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16017,10 +17372,9 @@ drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h
-drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16133,10 +17487,9 @@ drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h
-drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16250,8 +17603,8 @@ drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcos.h \
+drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16365,8 +17718,8 @@ drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
+drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16480,8 +17833,8 @@ drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h \
+drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrecs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16594,10 +17947,9 @@ drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdros.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrfgs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16710,9 +18062,12 @@ drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h
+drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16825,9 +18180,11 @@ drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrsts.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16940,9 +18297,11 @@ drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h
+drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17055,9 +18414,11 @@ drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtris.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17170,9 +18531,11 @@ drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrecs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrlsds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17286,8 +18649,8 @@ drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrfgs.h \
+drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17400,12 +18763,9 @@ drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h
-drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrfors.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17518,11 +18878,9 @@ drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17635,10 +18993,9 @@ drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17751,11 +19108,9 @@ drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17869,10 +19224,9 @@ drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrlsds.h \
+drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17985,9 +19339,11 @@ drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18100,9 +19456,10 @@ drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrms.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18215,9 +19572,14 @@ drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h
+drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18330,9 +19692,10 @@ drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrmss7.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrecs.h
+drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18446,8 +19809,8 @@ drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18560,10 +19923,9 @@ drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrris1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18676,11 +20038,9 @@ drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrris6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18793,10 +20153,9 @@ drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrris9.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18909,14 +20268,9 @@ drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h
-drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19029,10 +20383,9 @@ drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrecs.h
-drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrros.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19145,9 +20498,16 @@ drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrpps.h \
+ ../include/dcmtk/dcmrt/seq/drtrecs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrros.h \
+ ../include/dcmtk/dcmrt/seq/drtspccs.h
+drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19260,9 +20620,10 @@ drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrris1.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19376,8 +20737,8 @@ drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrris6.h \
+drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19491,8 +20852,8 @@ drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrris9.h \
+drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrshs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19606,8 +20967,8 @@ drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrms.h \
+drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19720,9 +21081,13 @@ drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrros.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrfgs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h
+drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19835,17 +21200,9 @@ drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpps.h \
- ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
- ../include/dcmtk/dcmrt/seq/drtrrros.h \
- ../include/dcmtk/dcmrt/seq/drtspccs.h
-drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19958,10 +21315,9 @@ drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrros.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20075,8 +21431,8 @@ drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrs.h \
+drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20189,9 +21545,10 @@ drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrshs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20304,9 +21661,12 @@ drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20420,12 +21780,9 @@ drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrfgs.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h
-drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
+ ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20539,8 +21896,8 @@ drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
+drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20654,8 +22011,8 @@ drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20769,8 +22126,8 @@ drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
+drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20883,10 +22240,9 @@ drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsns.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20999,12 +22355,9 @@ drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtris.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21117,10 +22470,9 @@ drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrshs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21234,8 +22586,8 @@ drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21349,8 +22701,8 @@ drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrshs7.h \
+drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21464,8 +22816,8 @@ drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h \
+drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsts.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21578,9 +22930,10 @@ drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsns.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21693,9 +23046,11 @@ drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h
+drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21809,8 +23164,8 @@ drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsrs.h \
+drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrvis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21924,8 +23279,8 @@ drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h \
+drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrws.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22039,8 +23394,8 @@ drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsss.h \
+drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22153,9 +23508,13 @@ drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsts.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22269,9 +23628,12 @@ drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtscs.o: drtscs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22385,10 +23747,9 @@ drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h
-drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22501,9 +23862,10 @@ drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrvis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22617,8 +23979,8 @@ drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrws.h \
+drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22732,8 +24094,8 @@ drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrwvms.h \
+drtsins.o: drtsins.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22847,12 +24209,10 @@ drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22966,12 +24326,10 @@ drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsns.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23084,10 +24442,9 @@ drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtspccs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23200,9 +24557,10 @@ drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23315,9 +24673,14 @@ drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtspgis.o: drtspgis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23431,10 +24794,12 @@ drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsns.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drtsptcs.o: drtsptcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23547,9 +24912,10 @@ drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtspccs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23662,10 +25028,9 @@ drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtssrcs.o: drtssrcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23779,13 +25144,9 @@ drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23898,9 +25259,10 @@ drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsss.o: drtsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -24014,7 +25376,8 @@ drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
 drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/drtstrct.h ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
@@ -24135,23 +25498,25 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -24165,19 +25530,23 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtrros.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
  ../include/dcmtk/dcmrt/seq/drtrses.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -24186,15 +25555,20 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrps.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
 drttms0.o: drttms0.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttms0.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -24545,24 +25919,27 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \
  ../include/dcmtk/dcmrt/seq/drtfsss.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -24575,8 +25952,11 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -24586,17 +25966,22 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h \
  ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
  ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../include/dcmtk/dcmrt/seq/drttscds.h \
- ../include/dcmtk/dcmrt/seq/drttsmds.h
+ ../include/dcmtk/dcmrt/seq/drttsmds.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
 drttscds.o: drttscds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttscds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -24829,12 +26214,15 @@ drttsibs.o: drttsibs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtas7.h \
  ../include/dcmtk/dcmrt/seq/drtbldls.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
  ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drticpds.h \
  ../include/dcmtk/dcmrt/seq/drtbldps.h \
  ../include/dcmtk/dcmrt/seq/drtcpas.h \
  ../include/dcmtk/dcmrt/seq/drtiwps.h \
  ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \
  ../include/dcmtk/dcmrt/seq/drtrmss7.h \
  ../include/dcmtk/dcmrt/seq/drtrshs7.h \
  ../include/dcmtk/dcmrt/seq/drtrbls.h \
@@ -25192,6 +26580,121 @@ drttypes.o: drttypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtudis.o: drtudis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
 drtvls.o: drtvls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtvls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
index 30c5409a2b1d6f4bab28a93e69b0eaea81d9e7ef..56cf836c989b6c7ecc9b2433f450b65db8617781 100644 (file)
@@ -23,35 +23,38 @@ LOCALDEFS =
 
 objs = drtdose.o drtimage.o drtplan.o drtstrct.o drttreat.o drtionpl.o drtiontr.o \
        drmdose.o drmimage.o drmplan.o drmstrct.o drttypes.o \
-       drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtarics.o \
-       drtas1.o drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o \
-       drtbcps.o drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o \
-       drtblds6.o drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o \
-       drtbvcps.o drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtchs.o \
+       drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtas1.o \
+       drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o drtbcps.o \
+       drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o drtblds6.o \
+       drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o drtbvcps.o \
+       drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtcgis.o drtchs.o \
        drtcims.o drtcis.o drtcncs.o drtcos.o drtcpas.o drtcpis.o drtcps.o \
-       drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdias.o \
-       drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o drtdspcs.o drtdss.o \
-       drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o drtfds.o drtfes.o drtfgs.o \
-       drtfgss.o drtfms.o drtfsss.o drtgas.o drthsdrs.o drtiais.o drtians.o \
-       drtiblds.o drtibls.o drtibs.o drticpds.o drticps.o drtics.o drtiis.o \
-       drtipiqs.o drtircs.o drtiseis.o drtitts.o drtiwps.o drtiws.o drtlsds6.o \
-       drtlsds7.o drtlsds.o drtmacds.o drtmas.o drtmdrs.o drtmls.o drtmps.o \
-       drtmss.o drtmucs.o drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o \
-       drtpcxs.o drtpdecs.o drtpfms.o drtpics.o drtporcs.o drtporis.o drtppcs.o \
-       drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o drtqds.o \
-       drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o drtrbos7.o \
-       drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o drtrcs.o \
-       drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o drtrfgs.o \
-       drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o drtrms.o \
-       drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o drtrpps.o \
-       drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o drtrros.o \
-       drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o drtrrtps4.o \
-       drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o drtrshs6.o \
-       drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o drtrss.o \
-       drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o drtrwvms.o \
-       drtscris.o drtsdcs.o drtsds.o drtshds.o drtsis.o drtsns.o drtspccs.o \
-       drtspcs.o drtss.o drtssrs.o drttms0.o drttms9.o drttscds.o drttsibs.o \
-       drttsmds.o drttts.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o drtws.o drtxrs.o
+       drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdddps.o \
+       drtddps.o drtdias.o drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o \
+       drtdspcs.o drtdss.o  drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o \
+       drtfds.o drtfes.o drtfgs.o  drtfgss.o drtfms.o drtfsss.o drtgas.o \
+       drtgpis.o drthsdrs.o drtiais.o drtians.o  drtiblds.o drtibls.o drtibs.o \
+       drticpds.o drticps.o drtics.o drtiis.o  drtipiqs.o drtircs.o drtiseis.o \
+       drtitts.o drtiwps.o drtiws.o drtlsds6.o  drtlsds7.o drtlsds.o drtmacds.o \
+       drtmas.o drtmdrs.o drtmls.o drtmps.o drtmris.o  drtmss.o drtmucs.o \
+       drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o  drtpcxs.o \
+       drtpdecs.o drtpdeds.o drtpfms.o drtpics.o drtporcs.o drtporis.o \
+       drtppcs.o drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o \
+       drtqds.o drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o \
+       drtrbos7.o drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o \
+       drtrcs.o  drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o \
+       drtrfgs.o drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o \
+       drtrms.o drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o \
+       drtrpps.o drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o \
+       drtrros.o drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o \
+       drtrrtps4.o drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o \
+       drtrshs6.o drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o \
+       drtrss.o drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o \
+       drtrwvms.o drtscris.o drtscs.o drtsdcs.o drtsds.o drtshds.o drtsins.o \
+       drtsis.o drtsns.o drtspccs.o drtspcs.o drtspgis.o drtsptcs.o drtss.o \
+       drtssrcs.o drtssrs.o drtsss.o drttms0.o drttms9.o drttscds.o drttsibs.o \
+       drttsmds.o drttts.o drtudis.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o \
+       drtws.o drtxrs.o
 
 library = libdcmrt.$(LIBEXT)
 
index c25a13a2744748cc9db4f3d7af8771ca8aa04b00..bf66a3396e0a974709b142ff9f012192934ace8e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAssigningAgencyOrDepartmentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const OFBool emptyDefault
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartment
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAssigningAgencyOrDepartmentCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAssigningAgencyOrDepartmentCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::read(DcmItem &item
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::write(DcmItem &ite
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResource
 }
 
 
+OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResource
 }
 
 
+OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index a350a8e82818aac967e3641d8d701ba343fa962a..0a40d96e37f2f53fc810c0a652fa8f9eecd9024e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAdmittingDiagnosesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAdmittingDiagnosesCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAdmittingDiagnosesCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdmittingDiagnosesCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdmittingDiagnosesCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdmittingDiagnosesCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdmittingDiagnosesCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResource(const OF
 }
 
 
+OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index b5f23b841e13e969f6310b0ed53d535a0d30ace1..7fcd882135f8322ac91c8b0f0d535ca134b06254 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAdditionalDrugSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAdditionalDrugSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAdditionalDrugSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::Item::operator=(cons
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAdditionalDrugSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAdditionalDrugSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAdditionalDrugSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalDrugSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalDrugSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAdditionalDrugSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalDrugSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalDrugSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAdditionalDrugSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAdditionalDrugSequence::Item::setMappingResource(const OFString &
 }
 
 
+OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 86fa43f9c6def71d6ddafaa410b81d47817b6172..45e04c5b60ad7e79cc0b38bd8dc717de5488cb66 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAssigningFacilitySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d84ca1518f36c821f6814d5660f74040bc7c8928..0b61ab8bd1a7685d00a3db25794ab4cf74683bad 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorGeometrySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 17a0ff607d81a464a9e4e8e9296addece72c0077..35f51eec16a214b334d3ce2130ee70191315fe59 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAssigningJurisdictionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAssigningJurisdictionCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAssigningJurisdictionCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningJurisdictionCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningJurisdictionCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningJurisdictionCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningJurisdictionCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResource(OFStr
 }
 
 
+OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResource(const
 }
 
 
+OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtarics.cc b/dcmrt/libsrc/drtarics.cc
deleted file mode 100644 (file)
index 7e6d530..0000000
+++ /dev/null
@@ -1,935 +0,0 @@
-/*
- *
- *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
- *  All rights reserved.  See COPYRIGHT file for details.
- *
- *  Source file for class DRTAdditionalRTROIIdentificationCodeSequence
- *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
- *
- */
-
-
-#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
-
-#include "dcmtk/dcmrt/seq/drtarics.h"
-
-
-// --- item class ---
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
-  : EmptyDefaultItem(emptyDefaultItem),
-    CodeMeaning(DCM_CodeMeaning),
-    CodeValue(DCM_CodeValue),
-    CodingSchemeDesignator(DCM_CodingSchemeDesignator),
-    CodingSchemeVersion(DCM_CodingSchemeVersion),
-    ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID),
-    ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag),
-    ContextGroupLocalVersion(DCM_ContextGroupLocalVersion),
-    ContextGroupVersion(DCM_ContextGroupVersion),
-    ContextIdentifier(DCM_ContextIdentifier),
-    ContextUID(DCM_ContextUID),
-    EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
-    LongCodeValue(DCM_LongCodeValue),
-    MappingResource(DCM_MappingResource),
-    MappingResourceUID(DCM_MappingResourceUID),
-    PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
-    URNCodeValue(DCM_URNCodeValue)
-{
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const Item &copy)
-  : EmptyDefaultItem(copy.EmptyDefaultItem),
-    CodeMeaning(copy.CodeMeaning),
-    CodeValue(copy.CodeValue),
-    CodingSchemeDesignator(copy.CodingSchemeDesignator),
-    CodingSchemeVersion(copy.CodingSchemeVersion),
-    ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID),
-    ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag),
-    ContextGroupLocalVersion(copy.ContextGroupLocalVersion),
-    ContextGroupVersion(copy.ContextGroupVersion),
-    ContextIdentifier(copy.ContextIdentifier),
-    ContextUID(copy.ContextUID),
-    EquivalentCodeSequence(copy.EquivalentCodeSequence),
-    LongCodeValue(copy.LongCodeValue),
-    MappingResource(copy.MappingResource),
-    MappingResourceUID(copy.MappingResourceUID),
-    PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence),
-    URNCodeValue(copy.URNCodeValue)
-{
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item::~Item()
-{
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::Item::operator=(const Item &copy)
-{
-    if (this != &copy)
-    {
-        EmptyDefaultItem = copy.EmptyDefaultItem;
-        CodeMeaning = copy.CodeMeaning;
-        CodeValue = copy.CodeValue;
-        CodingSchemeDesignator = copy.CodingSchemeDesignator;
-        CodingSchemeVersion = copy.CodingSchemeVersion;
-        ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID;
-        ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag;
-        ContextGroupLocalVersion = copy.ContextGroupLocalVersion;
-        ContextGroupVersion = copy.ContextGroupVersion;
-        ContextIdentifier = copy.ContextIdentifier;
-        ContextUID = copy.ContextUID;
-        EquivalentCodeSequence = copy.EquivalentCodeSequence;
-        LongCodeValue = copy.LongCodeValue;
-        MappingResource = copy.MappingResource;
-        MappingResourceUID = copy.MappingResourceUID;
-        PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence;
-        URNCodeValue = copy.URNCodeValue;
-    }
-    return *this;
-}
-
-
-void DRTAdditionalRTROIIdentificationCodeSequence::Item::clear()
-{
-    if (!EmptyDefaultItem)
-    {
-        /* clear all DICOM attributes */
-        CodeValue.clear();
-        CodingSchemeDesignator.clear();
-        CodingSchemeVersion.clear();
-        CodeMeaning.clear();
-        LongCodeValue.clear();
-        URNCodeValue.clear();
-        EquivalentCodeSequence.clear();
-        ContextIdentifier.clear();
-        ContextUID.clear();
-        MappingResource.clear();
-        MappingResourceUID.clear();
-        ContextGroupVersion.clear();
-        ContextGroupExtensionFlag.clear();
-        ContextGroupLocalVersion.clear();
-        ContextGroupExtensionCreatorUID.clear();
-        PurposeOfReferenceCodeSequence.clear();
-    }
-}
-
-
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isEmpty()
-{
-    return CodeValue.isEmpty() &&
-           CodingSchemeDesignator.isEmpty() &&
-           CodingSchemeVersion.isEmpty() &&
-           CodeMeaning.isEmpty() &&
-           LongCodeValue.isEmpty() &&
-           URNCodeValue.isEmpty() &&
-           EquivalentCodeSequence.isEmpty() &&
-           ContextIdentifier.isEmpty() &&
-           ContextUID.isEmpty() &&
-           MappingResource.isEmpty() &&
-           MappingResourceUID.isEmpty() &&
-           ContextGroupVersion.isEmpty() &&
-           ContextGroupExtensionFlag.isEmpty() &&
-           ContextGroupLocalVersion.isEmpty() &&
-           ContextGroupExtensionCreatorUID.isEmpty() &&
-           PurposeOfReferenceCodeSequence.isEmpty();
-}
-
-
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isValid() const
-{
-    return !EmptyDefaultItem;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::read(DcmItem &item)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        /* re-initialize object */
-        clear();
-        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        EquivalentCodeSequence.read(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        PurposeOfReferenceCodeSequence.read(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence");
-        result = EC_Normal;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::write(DcmItem &item)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = EC_Normal;
-        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence");
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(CodeMeaning, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(CodeValue, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(CodingSchemeDesignator, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(CodingSchemeVersion, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(ContextGroupExtensionFlag, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(ContextGroupLocalVersion, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(ContextGroupVersion, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(ContextIdentifier, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(ContextUID, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(LongCodeValue, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(MappingResource, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(MappingResourceUID, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(URNCodeValue, value, pos);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = CodeMeaning.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = CodeValue.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = CodingSchemeDesignator.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = CodingSchemeVersion.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ContextGroupExtensionCreatorUID.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ContextGroupExtensionFlag.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ContextGroupLocalVersion.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ContextGroupVersion.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ContextIdentifier.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ContextUID.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = LongCodeValue.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = MappingResource.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = MappingResourceUID.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal;
-        if (result.good())
-            result = URNCodeValue.putOFStringArray(value);
-    }
-    return result;
-}
-
-
-// --- sequence class ---
-
-DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence)
-  : EmptyDefaultSequence(emptyDefaultSequence),
-    SequenceOfItems(),
-    CurrentItem(),
-    EmptyItem(OFTrue /*emptyDefaultItem*/)
-{
-    CurrentItem = SequenceOfItems.end();
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence &copy)
-  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
-    SequenceOfItems(),
-    CurrentItem(),
-    EmptyItem(OFTrue /*emptyDefaultItem*/)
-{
-    /* create a copy of the internal sequence of items */
-    Item *item = NULL;
-    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
-    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
-    while (current != last)
-    {
-        item = new Item(**current);
-        if (item != NULL)
-        {
-            SequenceOfItems.push_back(item);
-        } else {
-            /* memory exhausted, there is nothing we can do about it */
-            break;
-        }
-        ++current;
-    }
-    CurrentItem = SequenceOfItems.begin();
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence &DRTAdditionalRTROIIdentificationCodeSequence::operator=(const DRTAdditionalRTROIIdentificationCodeSequence &copy)
-{
-    if (this != &copy)
-    {
-        clear();
-        EmptyDefaultSequence = copy.EmptyDefaultSequence;
-        /* create a copy of the internal sequence of items */
-        Item *item = NULL;
-        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
-        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
-        while (current != last)
-        {
-            item = new Item(**current);
-            if (item != NULL)
-            {
-                SequenceOfItems.push_back(item);
-            } else {
-                /* memory exhausted, there is nothing we can do about it */
-                break;
-            }
-            ++current;
-        }
-        CurrentItem = SequenceOfItems.begin();
-    }
-    return *this;
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::~DRTAdditionalRTROIIdentificationCodeSequence()
-{
-    clear();
-}
-
-
-void DRTAdditionalRTROIIdentificationCodeSequence::clear()
-{
-    if (!EmptyDefaultSequence)
-    {
-        CurrentItem = SequenceOfItems.begin();
-        const OFListConstIterator(Item *) last = SequenceOfItems.end();
-        /* delete all items and free memory */
-        while (CurrentItem != last)
-        {
-            delete (*CurrentItem);
-            CurrentItem = SequenceOfItems.erase(CurrentItem);
-        }
-        /* make sure that the list is empty */
-        SequenceOfItems.clear();
-        CurrentItem = SequenceOfItems.end();
-    }
-}
-
-
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::isEmpty()
-{
-    return SequenceOfItems.empty();
-}
-
-
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::isValid() const
-{
-    return !EmptyDefaultSequence;
-}
-
-
-unsigned long DRTAdditionalRTROIIdentificationCodeSequence::getNumberOfItems() const
-{
-    return SequenceOfItems.size();
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoFirstItem()
-{
-    OFCondition result = EC_IllegalCall;
-    if (!SequenceOfItems.empty())
-    {
-        CurrentItem = SequenceOfItems.begin();
-        result = EC_Normal;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoNextItem()
-{
-    OFCondition result = EC_IllegalCall;
-    if (CurrentItem != SequenceOfItems.end())
-    {
-        ++CurrentItem;
-        result = EC_Normal;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!SequenceOfItems.empty())
-    {
-        unsigned long idx = num + 1;
-        iterator = SequenceOfItems.begin();
-        const OFListConstIterator(Item *) last = SequenceOfItems.end();
-        while ((--idx > 0) && (iterator != last))
-            ++iterator;
-        /* specified list item found? */
-        if ((idx == 0) && (iterator != last))
-            result = EC_Normal;
-        else
-            result = EC_IllegalParameter;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
-{
-    OFCondition result = EC_IllegalCall;
-    if (!SequenceOfItems.empty())
-    {
-        unsigned long idx = num + 1;
-        iterator = SequenceOfItems.begin();
-        const OFListConstIterator(Item *) last = SequenceOfItems.end();
-        while ((--idx > 0) && (iterator != last))
-            ++iterator;
-        /* specified list item found? */
-        if ((idx == 0) && (iterator != last))
-            result = EC_Normal;
-        else
-            result = EC_IllegalParameter;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num)
-{
-    return gotoItem(num, CurrentItem);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem(Item *&item) const
-{
-    OFCondition result = EC_IllegalCall;
-    if (CurrentItem != SequenceOfItems.end())
-    {
-        item = *CurrentItem;
-        result = EC_Normal;
-    }
-    return result;
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem()
-{
-    if (CurrentItem != SequenceOfItems.end())
-        return **CurrentItem;
-    else
-        return EmptyItem;
-}
-
-
-const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem() const
-{
-    if (CurrentItem != SequenceOfItems.end())
-        return **CurrentItem;
-    else
-        return EmptyItem;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num, Item *&item)
-{
-    OFListIterator(Item *) iterator;
-    OFCondition result = gotoItem(num, iterator);
-    if (result.good())
-        item = *iterator;
-    return result;
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num)
-{
-    OFListIterator(Item *) iterator;
-    if (gotoItem(num, iterator).good())
-        return **iterator;
-    else
-        return EmptyItem;
-}
-
-
-const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num) const
-{
-    OFListConstIterator(Item *) iterator;
-    if (gotoItem(num, iterator).good())
-        return **iterator;
-    else
-        return EmptyItem;
-}
-
-
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num)
-{
-    return getItem(num);
-}
-
-
-const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num) const
-{
-    return getItem(num);
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::addItem(Item *&item)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultSequence)
-    {
-        item = new Item();
-        if (item != NULL)
-        {
-            SequenceOfItems.push_back(item);
-            result = EC_Normal;
-        } else
-            result = EC_MemoryExhausted;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultSequence)
-    {
-        OFListIterator(Item *) iterator;
-        result = gotoItem(pos, iterator);
-        if (result.good())
-        {
-            item = new Item();
-            if (item != NULL)
-            {
-                SequenceOfItems.insert(iterator, 1, item);
-                result = EC_Normal;
-            } else
-                result = EC_MemoryExhausted;
-        } else
-            result = addItem(item);
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::removeItem(const unsigned long pos)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultSequence)
-    {
-        OFListIterator(Item *) iterator;
-        if (gotoItem(pos, iterator).good())
-        {
-            delete *iterator;
-            iterator = SequenceOfItems.erase(iterator);
-            result = EC_Normal;
-        } else
-            result = EC_IllegalParameter;
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset,
-                                                               const OFString &card,
-                                                               const OFString &type,
-                                                               const char *moduleName)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultSequence)
-    {
-        /* re-initialize object */
-        clear();
-        /* retrieve sequence element from dataset */
-        DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_AdditionalRTROIIdentificationCodeSequence, sequence);
-        if (sequence != NULL)
-        {
-            if (checkElementValue(*sequence, card, type, result, moduleName))
-            {
-                DcmStack stack;
-                OFBool first = OFTrue;
-                /* iterate over all sequence items */
-                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
-                {
-                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
-                    if (ditem != NULL)
-                    {
-                        Item *item = new Item();
-                        if (item != NULL)
-                        {
-                            result = item->read(*ditem);
-                            if (result.good())
-                            {
-                                /* append new item to the end of the list */
-                                SequenceOfItems.push_back(item);
-                                first = OFFalse;
-                            }
-                        } else
-                            result = EC_MemoryExhausted;
-                    } else
-                        result = EC_CorruptedData;
-                }
-            }
-        } else {
-            DcmSequenceOfItems element(DCM_AdditionalRTROIIdentificationCodeSequence);
-            checkElementValue(element, card, type, result, moduleName);
-        }
-    }
-    return result;
-}
-
-
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::write(DcmItem &dataset,
-                                                                const OFString &card,
-                                                                const OFString &type,
-                                                                const char *moduleName)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultSequence)
-    {
-        result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_AdditionalRTROIIdentificationCodeSequence);
-        if (sequence != NULL)
-        {
-            result = EC_Normal;
-            /* an empty optional sequence is not written */
-            if ((type == "2") || !SequenceOfItems.empty())
-            {
-                OFListIterator(Item *) iterator = SequenceOfItems.begin();
-                const OFListConstIterator(Item *) last = SequenceOfItems.end();
-                /* iterate over all sequence items */
-                while (result.good() && (iterator != last))
-                {
-                    DcmItem *item = new DcmItem();
-                    if (item != NULL)
-                    {
-                        /* append new item to the end of the sequence */
-                        result = sequence->append(item);
-                        if (result.good())
-                        {
-                            result = (*iterator)->write(*item);
-                            ++iterator;
-                        } else
-                            delete item;
-                    } else
-                        result = EC_MemoryExhausted;
-                }
-                if (result.good())
-                {
-                    /* insert sequence element into the dataset */
-                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
-                }
-                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
-                    checkElementValue(*sequence, card, type, result, moduleName);
-                if (result.good())
-                {
-                    /* forget reference to sequence object (avoid deletion below) */
-                    sequence = NULL;
-                }
-            }
-            else if (type == "1")
-            {
-                /* empty type 1 sequence not allowed */
-                result = RT_EC_InvalidValue;
-                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
-                    checkElementValue(*sequence, card, type, result, moduleName);
-            }
-            /* delete sequence (if not inserted into the dataset) */
-            delete sequence;
-        }
-    }
-    return result;
-}
-
-
-// end of source file
index 4c06a7386ed02ed6f0bfacd70069a3ef38890733..233e266b0512ebb6a8084b713b8ecd56b07cdd9c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9f4901af0d2ed76731b89c8a3798392d163f0328..6c157b96bc258322ff31e411d474fbcd1416110a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 304bd0a262a297339c52b0662f87aa88b5033ebd..af978455a550e03ae19f3979ae5df5d6afe6d5e3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1abdea156c9488836fd3a2407ed8b458f40bb4ea..ad1c2502cc2b368fae71e2cdf0e50f3dde4bdfe2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 5578b5778dcd72758babefa18bd2636185fe7d4c..1a2d440e0de82a1b027e1ac721e8663bac070417 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicationSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 55e4dee668fa9f87f5c595f541fe6d801af6addc..fde1984b95eb8479caf29c9689013f01fb5a9b63 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBrachyAccessoryDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 55a7497217a95dc3a8fddee387be9ddcba26ce9d..bf640f35f115cad710da7343a46059c7643a1ed2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContrastBolusAgentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTContrastBolusAgentSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTContrastBolusAgentSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::Item::operat
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTContrastBolusAgentSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTContrastBolusAgentSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAgentSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAgentSequence");
@@ -186,6 +192,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAgentSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAgentSequence");
@@ -303,6 +310,15 @@ OFCondition DRTContrastBolusAgentSequence::Item::getMappingResource(OFString &va
 }
 
 
+OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTContrastBolusAgentSequence::Item::setMappingResource(const OFStri
 }
 
 
+OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 1eac2efb32ef269a3794de79a8bc2903210a63f9..e2b4147126937495686d4d0ab19602d2bfc94bc6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBrachyControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f86a67006a2ffe4e2693abd042f579519e037d9d..b3934e1e287ec3d691ac49c783d025c9f682de3d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBlockSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -33,7 +33,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const OFBool emptyDefaultItem)
     BlockTrayID(DCM_BlockTrayID),
     BlockType(DCM_BlockType),
     MaterialID(DCM_MaterialID),
-    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance),
+    TrayAccessoryCode(DCM_TrayAccessoryCode)
 {
 }
 
@@ -52,7 +53,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const Item &copy)
     BlockTrayID(copy.BlockTrayID),
     BlockType(copy.BlockType),
     MaterialID(copy.MaterialID),
-    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance),
+    TrayAccessoryCode(copy.TrayAccessoryCode)
 {
 }
 
@@ -80,6 +82,7 @@ DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::Item::op
         BlockType = copy.BlockType;
         MaterialID = copy.MaterialID;
         SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance;
+        TrayAccessoryCode = copy.TrayAccessoryCode;
     }
     return *this;
 }
@@ -91,6 +94,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear()
     {
         /* clear all DICOM attributes */
         BlockTrayID.clear();
+        TrayAccessoryCode.clear();
         AccessoryCode.clear();
         SourceToBlockTrayDistance.clear();
         BlockType.clear();
@@ -110,6 +114,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear()
 OFBool DRTBlockSequenceInRTBeamsModule::Item::isEmpty()
 {
     return BlockTrayID.isEmpty() &&
+           TrayAccessoryCode.isEmpty() &&
            AccessoryCode.isEmpty() &&
            SourceToBlockTrayDistance.isEmpty() &&
            BlockType.isEmpty() &&
@@ -139,6 +144,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::read(DcmItem &item)
         /* re-initialize object */
         clear();
         getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence");
+        getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence");
         getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence");
@@ -164,6 +170,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::write(DcmItem &item)
     {
         result = EC_Normal;
         addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence");
+        addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence");
         addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence");
@@ -361,6 +368,15 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::getSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTBeamsModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(TrayAccessoryCode, value, pos);
+}
+
+
 OFCondition DRTBlockSequenceInRTBeamsModule::Item::setAccessoryCode(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -530,6 +546,19 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::setSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTBeamsModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = TrayAccessoryCode.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 // --- sequence class ---
 
 DRTBlockSequenceInRTBeamsModule::DRTBlockSequenceInRTBeamsModule(const OFBool emptyDefaultSequence)
index 806f29015415eb4b3c26ba454842bf075cbfca23..84b20ec365a112269c8fda76cb23660d7d707c3f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBlockSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -32,7 +32,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const OFBool emptyDefaultItem)
     BlockTrayID(DCM_BlockTrayID),
     BlockType(DCM_BlockType),
     MaterialID(DCM_MaterialID),
-    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance),
+    TrayAccessoryCode(DCM_TrayAccessoryCode)
 {
 }
 
@@ -50,7 +51,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const Item &copy)
     BlockTrayID(copy.BlockTrayID),
     BlockType(copy.BlockType),
     MaterialID(copy.MaterialID),
-    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance),
+    TrayAccessoryCode(copy.TrayAccessoryCode)
 {
 }
 
@@ -77,6 +79,7 @@ DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::Item::op
         BlockType = copy.BlockType;
         MaterialID = copy.MaterialID;
         SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance;
+        TrayAccessoryCode = copy.TrayAccessoryCode;
     }
     return *this;
 }
@@ -88,6 +91,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear()
     {
         /* clear all DICOM attributes */
         BlockTrayID.clear();
+        TrayAccessoryCode.clear();
         AccessoryCode.clear();
         SourceToBlockTrayDistance.clear();
         BlockType.clear();
@@ -106,6 +110,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear()
 OFBool DRTBlockSequenceInRTImageModule::Item::isEmpty()
 {
     return BlockTrayID.isEmpty() &&
+           TrayAccessoryCode.isEmpty() &&
            AccessoryCode.isEmpty() &&
            SourceToBlockTrayDistance.isEmpty() &&
            BlockType.isEmpty() &&
@@ -134,6 +139,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::read(DcmItem &item)
         /* re-initialize object */
         clear();
         getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence");
+        getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence");
         getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence");
@@ -158,6 +164,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::write(DcmItem &item)
     {
         result = EC_Normal;
         addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence");
+        addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence");
         addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence");
@@ -336,6 +343,15 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::getSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTImageModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(TrayAccessoryCode, value, pos);
+}
+
+
 OFCondition DRTBlockSequenceInRTImageModule::Item::setAccessoryCode(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -492,6 +508,19 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::setSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTImageModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = TrayAccessoryCode.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 // --- sequence class ---
 
 DRTBlockSequenceInRTImageModule::DRTBlockSequenceInRTImageModule(const OFBool emptyDefaultSequence)
index 560165cd0c97e547b4954cb5ed224ec74276211e..1c3cb120fc67ced180b45eec0dfda9c3e6b1789d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceLeafPairsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 07a8ef8e14f22ef7954707163acd93a2b8d1c16d..ab394a729c3f1ed0b38c88de3ac7ce865c6f3b9c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDevicePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1cef0f200cf85ee986197cad4cf40fdc415a4932..4d2e43a6b15c8615fb735f6a967ab11a6cd464cd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 714aa7b54195d69efe0958ae2d9f784530d75142..8949c6742981c0ebe9cbd624de34725cc1c6d042 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b5719c40766b6495269d71f764618341e33b685f..5b732b72057d3faca62ee6517f2e3e444e4f3480 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0a5a501668ac255276e632d1585b952ec7241666..4f47767c835f8baf81577b2000ff341c273b74fa 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceToleranceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2f23b0d1a55ab72b3e85583e9c5bd2c6e2cac310..121bf3f0067d12dd14ca76bb7d0d0d29bf028bfc 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBreedRegistryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::Item::operator
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTBreedRegistryCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTBreedRegistryCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "BreedRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "BreedRegistryCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "BreedRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "BreedRegistryCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResource(OFString &val
 }
 
 
+OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResource(const OFStrin
 }
 
 
+OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 98b584bcb3d7c42ee4d25d2b273eba5d2fe78aac..e8bb749f2a11a338282ed7f2870bfffe461cdc58 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBrachyReferencedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 67f54168f7dd3cfb86b164ba8509c55f4fa3ee7b..925322e5386d05dc91b435c4d001cff92c2d0f0c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBreedRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f9e42e8c755a8b8e0c92f73e0c69858bc7db68e6..9967a1965f5b41dd936ea45b0f06117151416c82 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d72e2d2d7dd216e090f1b37ba70d9579cafeb4ec..b6c873c1f18dc6e11cabb2ebafb41dfffc80d79e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBlockSlabSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 857a7c71a5b1efa12ab8971552074fbd34d5d2cf..2ec60895522114fb980e9ae011e7ade9b0876bc1 100644 (file)
@@ -6,9 +6,8 @@
  *
  *  Source file for class DRTBeamDoseVerificationControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
- *  Last modified on 2016-02-20 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,7 +24,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const OFBool emptyDefaul
     AverageBeamDosePointDepth(DCM_AverageBeamDosePointDepth),
     AverageBeamDosePointEquivalentDepth(DCM_AverageBeamDosePointEquivalentDepth),
     AverageBeamDosePointSSD(DCM_AverageBeamDosePointSSD),
-    AverageBeamDosePointSourceToExternalContourSurfaceDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance),
+    AverageBeamDosePointSourceToExternalContourDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance),
     CumulativeMetersetWeight(DCM_CumulativeMetersetWeight),
     ReferencedControlPointIndex(DCM_ReferencedControlPointIndex)
 {
@@ -37,7 +36,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const Item &copy)
     AverageBeamDosePointDepth(copy.AverageBeamDosePointDepth),
     AverageBeamDosePointEquivalentDepth(copy.AverageBeamDosePointEquivalentDepth),
     AverageBeamDosePointSSD(copy.AverageBeamDosePointSSD),
-    AverageBeamDosePointSourceToExternalContourSurfaceDistance(copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance),
+    AverageBeamDosePointSourceToExternalContourDistance(copy.AverageBeamDosePointSourceToExternalContourDistance),
     CumulativeMetersetWeight(copy.CumulativeMetersetWeight),
     ReferencedControlPointIndex(copy.ReferencedControlPointIndex)
 {
@@ -57,7 +56,7 @@ DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationContro
         AverageBeamDosePointDepth = copy.AverageBeamDosePointDepth;
         AverageBeamDosePointEquivalentDepth = copy.AverageBeamDosePointEquivalentDepth;
         AverageBeamDosePointSSD = copy.AverageBeamDosePointSSD;
-        AverageBeamDosePointSourceToExternalContourSurfaceDistance = copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance;
+        AverageBeamDosePointSourceToExternalContourDistance = copy.AverageBeamDosePointSourceToExternalContourDistance;
         CumulativeMetersetWeight = copy.CumulativeMetersetWeight;
         ReferencedControlPointIndex = copy.ReferencedControlPointIndex;
     }
@@ -75,7 +74,7 @@ void DRTBeamDoseVerificationControlPointSequence::Item::clear()
         AverageBeamDosePointDepth.clear();
         AverageBeamDosePointEquivalentDepth.clear();
         AverageBeamDosePointSSD.clear();
-        AverageBeamDosePointSourceToExternalContourSurfaceDistance.clear();
+        AverageBeamDosePointSourceToExternalContourDistance.clear();
     }
 }
 
@@ -87,7 +86,7 @@ OFBool DRTBeamDoseVerificationControlPointSequence::Item::isEmpty()
            AverageBeamDosePointDepth.isEmpty() &&
            AverageBeamDosePointEquivalentDepth.isEmpty() &&
            AverageBeamDosePointSSD.isEmpty() &&
-           AverageBeamDosePointSourceToExternalContourSurfaceDistance.isEmpty();
+           AverageBeamDosePointSourceToExternalContourDistance.isEmpty();
 }
 
 
@@ -109,7 +108,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::read(DcmItem &ite
         getAndCheckElementFromDataset(item, AverageBeamDosePointDepth, "1", "2C", "BeamDoseVerificationControlPointSequence");
         getAndCheckElementFromDataset(item, AverageBeamDosePointEquivalentDepth, "1", "2C", "BeamDoseVerificationControlPointSequence");
         getAndCheckElementFromDataset(item, AverageBeamDosePointSSD, "1", "2C", "BeamDoseVerificationControlPointSequence");
-        getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourSurfaceDistance, "1", "3", "BeamDoseVerificationControlPointSequence");
+        getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourDistance, "1", "3", "BeamDoseVerificationControlPointSequence");
         result = EC_Normal;
     }
     return result;
@@ -127,7 +126,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::write(DcmItem &it
         addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointDepth), "1", "2C", "BeamDoseVerificationControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointEquivalentDepth), "1", "2C", "BeamDoseVerificationControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSSD), "1", "2C", "BeamDoseVerificationControlPointSequence");
-        addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourSurfaceDistance), "1", "3", "BeamDoseVerificationControlPointSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourDistance), "1", "3", "BeamDoseVerificationControlPointSequence");
     }
     return result;
 }
@@ -160,12 +159,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDos
 }
 
 
-OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos) const
+OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourSurfaceDistance).getFloat32(value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourDistance).getFloat32(value, pos);
 }
 
 
@@ -232,12 +231,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDos
 }
 
 
-OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos)
+OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return AverageBeamDosePointSourceToExternalContourSurfaceDistance.putFloat32(value, pos);
+        return AverageBeamDosePointSourceToExternalContourDistance.putFloat32(value, pos);
 }
 
 
index bc815f021d3c31bbd2020cff3e2bc330756a269f..20a763d0e59a5322a4287af0acccafb6b15ca1f0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContrastBolusAdministrationRouteSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -35,6 +35,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const OFBool emptyDefaul
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -57,6 +58,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -87,6 +89,7 @@ DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministratio
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -110,6 +113,7 @@ void DRTContrastBolusAdministrationRouteSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -132,6 +136,7 @@ OFBool DRTContrastBolusAdministrationRouteSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -164,6 +169,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::read(DcmItem &ite
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAdministrationRouteSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence");
@@ -192,6 +198,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::write(DcmItem &it
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAdministrationRouteSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence");
@@ -310,6 +317,15 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourc
 }
 
 
+OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -484,6 +500,19 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourc
 }
 
 
+OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 979f490e9c5cab2a965a6a5b332dd8b5448ad3e9..8732fdb5a7412394611144f811d4e3ebbddb9c98 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConceptCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTConceptCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTConceptCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTConceptCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTConceptCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTConceptCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTConceptCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTConceptCodeSequence::Item::getMappingResource(OFString &value, co
 }
 
 
+OFCondition DRTConceptCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTConceptCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTConceptCodeSequence::Item::setMappingResource(const OFString &val
 }
 
 
+OFCondition DRTConceptCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTConceptCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 731881adad237b6d283d59ff61ede8c42f5a0775..dc1f3e9beabd1eddf708ec447f440438ebba0d3a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConsentForClinicalTrialUseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 5ffe6cfc02fd5568c28b7385323a059a335c9468..b8f97519a3f8e751e4dbd23878d4a298cfcf76ef 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a0cee02db55b4a837b25779473616294d5535fb7..fc2d392cf4719d7fc25048c26c1d393f2b1c5b0c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContributingEquipmentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcgis.cc b/dcmrt/libsrc/drtcgis.cc
new file mode 100644 (file)
index 0000000..2ef1973
--- /dev/null
@@ -0,0 +1,631 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTContextGroupIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtcgis.h"
+
+
+// --- item class ---
+
+DRTContextGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
+    MappingResource(DCM_MappingResource)
+{
+}
+
+
+DRTContextGroupIdentificationSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
+    MappingResource(copy.MappingResource)
+{
+}
+
+
+DRTContextGroupIdentificationSequence::Item::~Item()
+{
+}
+
+
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
+        MappingResource = copy.MappingResource;
+    }
+    return *this;
+}
+
+
+void DRTContextGroupIdentificationSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        ContextGroupVersion.clear();
+    }
+}
+
+
+OFBool DRTContextGroupIdentificationSequence::Item::isEmpty()
+{
+    return ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           ContextGroupVersion.isEmpty();
+}
+
+
+OFBool DRTContextGroupIdentificationSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "1", "ContextGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContextGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1", "ContextGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1", "ContextGroupIdentificationSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "1", "ContextGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContextGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "ContextGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1", "ContextGroupIdentificationSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextIdentifier, value, pos);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::getContextUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextUID, value, pos);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTContextGroupIdentificationSequence &DRTContextGroupIdentificationSequence::operator=(const DRTContextGroupIdentificationSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTContextGroupIdentificationSequence::~DRTContextGroupIdentificationSequence()
+{
+    clear();
+}
+
+
+void DRTContextGroupIdentificationSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTContextGroupIdentificationSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTContextGroupIdentificationSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTContextGroupIdentificationSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::read(DcmItem &dataset,
+                                                        const OFString &card,
+                                                        const OFString &type,
+                                                        const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_ContextGroupIdentificationSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_ContextGroupIdentificationSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::write(DcmItem &dataset,
+                                                         const OFString &card,
+                                                         const OFString &type,
+                                                         const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ContextGroupIdentificationSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index a216b012301fc5ce8b580bc4e917b7c3cddb0bf1..67699b0d3b3e37599072fe51c844ffab401a9e4f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTChannelSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d02068df2d08037d62daaf9af36c35c27cc8abf1..a8fd65151eabbd2f8919b159203ce191d2a41591 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContentItemModifierSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index db289e691881bec443056bfab7a314ac1091a12e..812bb216f482485acfb3256549ba04045b281081 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContourImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 398666442985d0706035ac159daa8282056eed0e..10c9edce6353b113108731ea2cff0bef60fcfa87 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConceptNameCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTConceptNameCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTConceptNameCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::Item::operator=(co
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTConceptNameCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTConceptNameCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTConceptNameCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptNameCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptNameCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTConceptNameCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptNameCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptNameCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTConceptNameCodeSequence::Item::getMappingResource(OFString &value
 }
 
 
+OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTConceptNameCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index d2b31cf3f24a090dfa2e9dccebbf2cad5ed58b63..732b059252382242abb5727d52fe590b452a9c11 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -37,7 +37,8 @@ DRTCompensatorSequence::Item::Item(const OFBool emptyDefaultItem)
     CompensatorType(DCM_CompensatorType),
     MaterialID(DCM_MaterialID),
     SourceToCompensatorDistance(DCM_SourceToCompensatorDistance),
-    SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance)
+    SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance),
+    TrayAccessoryCode(DCM_TrayAccessoryCode)
 {
 }
 
@@ -60,7 +61,8 @@ DRTCompensatorSequence::Item::Item(const Item &copy)
     CompensatorType(copy.CompensatorType),
     MaterialID(copy.MaterialID),
     SourceToCompensatorDistance(copy.SourceToCompensatorDistance),
-    SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance)
+    SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance),
+    TrayAccessoryCode(copy.TrayAccessoryCode)
 {
 }
 
@@ -92,6 +94,7 @@ DRTCompensatorSequence::Item &DRTCompensatorSequence::Item::operator=(const Item
         MaterialID = copy.MaterialID;
         SourceToCompensatorDistance = copy.SourceToCompensatorDistance;
         SourceToCompensatorTrayDistance = copy.SourceToCompensatorTrayDistance;
+        TrayAccessoryCode = copy.TrayAccessoryCode;
     }
     return *this;
 }
@@ -109,6 +112,7 @@ void DRTCompensatorSequence::Item::clear()
         CompensatorID.clear();
         AccessoryCode.clear();
         CompensatorTrayID.clear();
+        TrayAccessoryCode.clear();
         SourceToCompensatorTrayDistance.clear();
         CompensatorDivergence.clear();
         CompensatorMountingPosition.clear();
@@ -132,6 +136,7 @@ OFBool DRTCompensatorSequence::Item::isEmpty()
            CompensatorID.isEmpty() &&
            AccessoryCode.isEmpty() &&
            CompensatorTrayID.isEmpty() &&
+           TrayAccessoryCode.isEmpty() &&
            SourceToCompensatorTrayDistance.isEmpty() &&
            CompensatorDivergence.isEmpty() &&
            CompensatorMountingPosition.isEmpty() &&
@@ -165,6 +170,7 @@ OFCondition DRTCompensatorSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, CompensatorID, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, CompensatorTrayID, "1", "3", "CompensatorSequence");
+        getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, SourceToCompensatorTrayDistance, "1", "2", "CompensatorSequence");
         getAndCheckElementFromDataset(item, CompensatorDivergence, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, CompensatorMountingPosition, "1", "3", "CompensatorSequence");
@@ -194,6 +200,7 @@ OFCondition DRTCompensatorSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmShortString(CompensatorID), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmShortString(CompensatorTrayID), "1", "3", "CompensatorSequence");
+        addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmDecimalString(SourceToCompensatorTrayDistance), "1", "2", "CompensatorSequence");
         addElementToDataset(result, item, new DcmCodeString(CompensatorDivergence), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmCodeString(CompensatorMountingPosition), "1", "3", "CompensatorSequence");
@@ -488,6 +495,15 @@ OFCondition DRTCompensatorSequence::Item::getSourceToCompensatorTrayDistance(Flo
 }
 
 
+OFCondition DRTCompensatorSequence::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(TrayAccessoryCode, value, pos);
+}
+
+
 OFCondition DRTCompensatorSequence::Item::setAccessoryCode(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -709,6 +725,19 @@ OFCondition DRTCompensatorSequence::Item::setSourceToCompensatorTrayDistance(con
 }
 
 
+OFCondition DRTCompensatorSequence::Item::setTrayAccessoryCode(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = TrayAccessoryCode.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 // --- sequence class ---
 
 DRTCompensatorSequence::DRTCompensatorSequence(const OFBool emptyDefaultSequence)
index 09b601ce76e9656865046b9c7cf1768108b500da..bd92f13790fa931820f73c6dd1194b5cf8631f05 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCorrectedParameterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8ca6f86f1d38031fa51e37d26f31e97edfe53d01..b2bba6fba7232d73770686d7d578712d9b74e7b0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConsultingPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c3d295a191006aca7f4d292c001c186a5508e55b..554e4a8e51974678be8dde5a8261907b39d6f466 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c39b275c6e69e562140bc97cde8dd0324c33be2d..b2fbd254b2469ca7cee3bf8db162b3ecebfcd721 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c9bb6d260b1302fc44d92fe09f74288ba36dc8ca..0932c21a6f820b72c8832ad6ccb78b71c1b1d840 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConversionSourceAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4fc8d7be83afeb82e72e528fb53c8c0451a1cd3f..59347235701e9a134ce8d8862d304baaf9d1904c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTChannelShieldSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 7504daffa58d22f3b5cfff1c432e35dd7dde0158..b34ba9ab90e5d473d0402854c46c9dffdfdb5ef7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCodingSchemeIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6e2b1e403d4e520d8e35aa6ab45f87cdc7e05652..dbdbdcfa2d0aed2dfb483674500fd72b5659da71 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTChannelSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTChannelSourceSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTChannelSourceSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTChannelSourceSequence::Item &DRTChannelSourceSequence::Item::operator=(const
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTChannelSourceSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTChannelSourceSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTChannelSourceSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ChannelSourceSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ChannelSourceSequence");
@@ -186,6 +192,7 @@ OFCondition DRTChannelSourceSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ChannelSourceSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ChannelSourceSequence");
@@ -303,6 +310,15 @@ OFCondition DRTChannelSourceSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTChannelSourceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTChannelSourceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTChannelSourceSequence::Item::setMappingResource(const OFString &v
 }
 
 
+OFCondition DRTChannelSourceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTChannelSourceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 736bd6d3b3c5cb87001d3a9040ab81de693df0fe..f1c78414b56c2d246afed48056f6e9e3c48c5f85 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDerivationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTDerivationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTDerivationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::Item::operator=(cons
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTDerivationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTDerivationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTDerivationCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DerivationCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DerivationCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTDerivationCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DerivationCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DerivationCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTDerivationCodeSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTDerivationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDerivationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTDerivationCodeSequence::Item::setMappingResource(const OFString &
 }
 
 
+OFCondition DRTDerivationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDerivationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtdddps.cc b/dcmrt/libsrc/drtdddps.cc
new file mode 100644 (file)
index 0000000..28d9ddd
--- /dev/null
@@ -0,0 +1,644 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTDeliveredDepthDoseParametersSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtdddps.h"
+
+
+// --- item class ---
+
+DRTDeliveredDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    DeliveredDistalDepth(DCM_DeliveredDistalDepth),
+    DeliveredDistalDepthFraction(DCM_DeliveredDistalDepthFraction),
+    DeliveredNominalRangeModulatedRegionDepths(DCM_DeliveredNominalRangeModulatedRegionDepths),
+    DeliveredNominalRangeModulationFractions(DCM_DeliveredNominalRangeModulationFractions),
+    DeliveredReferenceDoseDefinition(DCM_DeliveredReferenceDoseDefinition)
+{
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    DeliveredDistalDepth(copy.DeliveredDistalDepth),
+    DeliveredDistalDepthFraction(copy.DeliveredDistalDepthFraction),
+    DeliveredNominalRangeModulatedRegionDepths(copy.DeliveredNominalRangeModulatedRegionDepths),
+    DeliveredNominalRangeModulationFractions(copy.DeliveredNominalRangeModulationFractions),
+    DeliveredReferenceDoseDefinition(copy.DeliveredReferenceDoseDefinition)
+{
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::Item::~Item()
+{
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        DeliveredDistalDepth = copy.DeliveredDistalDepth;
+        DeliveredDistalDepthFraction = copy.DeliveredDistalDepthFraction;
+        DeliveredNominalRangeModulatedRegionDepths = copy.DeliveredNominalRangeModulatedRegionDepths;
+        DeliveredNominalRangeModulationFractions = copy.DeliveredNominalRangeModulationFractions;
+        DeliveredReferenceDoseDefinition = copy.DeliveredReferenceDoseDefinition;
+    }
+    return *this;
+}
+
+
+void DRTDeliveredDepthDoseParametersSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        DeliveredReferenceDoseDefinition.clear();
+        DeliveredDistalDepth.clear();
+        DeliveredDistalDepthFraction.clear();
+        DeliveredNominalRangeModulatedRegionDepths.clear();
+        DeliveredNominalRangeModulationFractions.clear();
+    }
+}
+
+
+OFBool DRTDeliveredDepthDoseParametersSequence::Item::isEmpty()
+{
+    return DeliveredReferenceDoseDefinition.isEmpty() &&
+           DeliveredDistalDepth.isEmpty() &&
+           DeliveredDistalDepthFraction.isEmpty() &&
+           DeliveredNominalRangeModulatedRegionDepths.isEmpty() &&
+           DeliveredNominalRangeModulationFractions.isEmpty();
+}
+
+
+OFBool DRTDeliveredDepthDoseParametersSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, DeliveredReferenceDoseDefinition, "1", "1", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredDistalDepth, "1", "1", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredDistalDepthFraction, "1", "1", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredNominalRangeModulatedRegionDepths, "2", "1C", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredNominalRangeModulationFractions, "2", "1C", "DeliveredDepthDoseParametersSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmCodeString(DeliveredReferenceDoseDefinition), "1", "1", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepth), "1", "1", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepthFraction), "1", "1", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulatedRegionDepths), "2", "1C", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulationFractions), "2", "1C", "DeliveredDepthDoseParametersSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepth(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepth).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepthFraction).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulatedRegionDepths).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulationFractions).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(DeliveredReferenceDoseDefinition, value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepth(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredDistalDepth.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredDistalDepthFraction.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredNominalRangeModulatedRegionDepths.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredNominalRangeModulationFractions.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = DeliveredReferenceDoseDefinition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTDeliveredDepthDoseParametersSequence &DRTDeliveredDepthDoseParametersSequence::operator=(const DRTDeliveredDepthDoseParametersSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::~DRTDeliveredDepthDoseParametersSequence()
+{
+    clear();
+}
+
+
+void DRTDeliveredDepthDoseParametersSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTDeliveredDepthDoseParametersSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTDeliveredDepthDoseParametersSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTDeliveredDepthDoseParametersSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::read(DcmItem &dataset,
+                                                          const OFString &card,
+                                                          const OFString &type,
+                                                          const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_DeliveredDepthDoseParametersSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_DeliveredDepthDoseParametersSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::write(DcmItem &dataset,
+                                                           const OFString &card,
+                                                           const OFString &type,
+                                                           const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DeliveredDepthDoseParametersSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
diff --git a/dcmrt/libsrc/drtddps.cc b/dcmrt/libsrc/drtddps.cc
new file mode 100644 (file)
index 0000000..b459c0d
--- /dev/null
@@ -0,0 +1,644 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTDepthDoseParametersSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtddps.h"
+
+
+// --- item class ---
+
+DRTDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    DistalDepth(DCM_DistalDepth),
+    DistalDepthFraction(DCM_DistalDepthFraction),
+    NominalRangeModulatedRegionDepths(DCM_NominalRangeModulatedRegionDepths),
+    NominalRangeModulationFractions(DCM_NominalRangeModulationFractions),
+    ReferenceDoseDefinition(DCM_ReferenceDoseDefinition)
+{
+}
+
+
+DRTDepthDoseParametersSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    DistalDepth(copy.DistalDepth),
+    DistalDepthFraction(copy.DistalDepthFraction),
+    NominalRangeModulatedRegionDepths(copy.NominalRangeModulatedRegionDepths),
+    NominalRangeModulationFractions(copy.NominalRangeModulationFractions),
+    ReferenceDoseDefinition(copy.ReferenceDoseDefinition)
+{
+}
+
+
+DRTDepthDoseParametersSequence::Item::~Item()
+{
+}
+
+
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        DistalDepth = copy.DistalDepth;
+        DistalDepthFraction = copy.DistalDepthFraction;
+        NominalRangeModulatedRegionDepths = copy.NominalRangeModulatedRegionDepths;
+        NominalRangeModulationFractions = copy.NominalRangeModulationFractions;
+        ReferenceDoseDefinition = copy.ReferenceDoseDefinition;
+    }
+    return *this;
+}
+
+
+void DRTDepthDoseParametersSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        ReferenceDoseDefinition.clear();
+        DistalDepth.clear();
+        DistalDepthFraction.clear();
+        NominalRangeModulatedRegionDepths.clear();
+        NominalRangeModulationFractions.clear();
+    }
+}
+
+
+OFBool DRTDepthDoseParametersSequence::Item::isEmpty()
+{
+    return ReferenceDoseDefinition.isEmpty() &&
+           DistalDepth.isEmpty() &&
+           DistalDepthFraction.isEmpty() &&
+           NominalRangeModulatedRegionDepths.isEmpty() &&
+           NominalRangeModulationFractions.isEmpty();
+}
+
+
+OFBool DRTDepthDoseParametersSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, ReferenceDoseDefinition, "1", "1", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DistalDepth, "1", "1", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DistalDepthFraction, "1", "1", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, NominalRangeModulatedRegionDepths, "2", "1C", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, NominalRangeModulationFractions, "2", "1C", "DepthDoseParametersSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmCodeString(ReferenceDoseDefinition), "1", "1", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepth), "1", "1", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepthFraction), "1", "1", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulatedRegionDepths), "2", "1C", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulationFractions), "2", "1C", "DepthDoseParametersSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepth(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, DistalDepth).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepthFraction(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, DistalDepthFraction).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulatedRegionDepths).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulationFractions).getFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::getReferenceDoseDefinition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ReferenceDoseDefinition, value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepth(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DistalDepth.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepthFraction(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DistalDepthFraction.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return NominalRangeModulatedRegionDepths.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulationFractions(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return NominalRangeModulationFractions.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setReferenceDoseDefinition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ReferenceDoseDefinition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTDepthDoseParametersSequence &DRTDepthDoseParametersSequence::operator=(const DRTDepthDoseParametersSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTDepthDoseParametersSequence::~DRTDepthDoseParametersSequence()
+{
+    clear();
+}
+
+
+void DRTDepthDoseParametersSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTDepthDoseParametersSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTDepthDoseParametersSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTDepthDoseParametersSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::read(DcmItem &dataset,
+                                                 const OFString &card,
+                                                 const OFString &type,
+                                                 const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_DepthDoseParametersSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_DepthDoseParametersSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::write(DcmItem &dataset,
+                                                  const OFString &card,
+                                                  const OFString &type,
+                                                  const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DepthDoseParametersSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 70d3afba15c4da906bbfb9cce624f89196612dfa..ae0d9a81a058aad5fe9d75a7cfb1f0fa1d189fe4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDeidentificationActionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 05fcc5b6d10d82112775e6d175b4abc16a1cf68a..b1d056c9467dbe614e707438b51b00b8827046a4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDeidentificationMethodCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequen
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTDeidentificationMethodCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTDeidentificationMethodCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeidentificationMethodCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeidentificationMethodCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeidentificationMethodCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeidentificationMethodCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResource(OFSt
 }
 
 
+OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResource(cons
 }
 
 
+OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 89620c1847ec7ef566498e6b4fca94dddb551a65..6ecb63daa1574c16e805fff0e57343569713f033 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDICOMMediaRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1d28f30a0cbf1e9572328b893d6543083025011b..de664857cb53deb3f26c158e627626143e526592 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDICOMRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index aee598079de9bc1cfa40e63a95968dba3c1e7df6..2f298e8008eaf6f3798343e09f28f2a4525ebc35 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDoseIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTDoseIOD::DRTDoseIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTDoseIOD::DRTDoseIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTDoseIOD::DRTDoseIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTDoseIOD::DRTDoseIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTDoseIOD::DRTDoseIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -133,9 +154,6 @@ DRTDoseIOD::DRTDoseIOD()
     AcquisitionDate(DCM_AcquisitionDate),
     AcquisitionTime(DCM_AcquisitionTime),
     AcquisitionDateTime(DCM_AcquisitionDateTime),
-    ReferencedImageSequence(),
-    DerivationDescription(DCM_DerivationDescription),
-    SourceImageSequence(),
     ImagesInAcquisition(DCM_ImagesInAcquisition),
     ImageComments(DCM_ImageComments),
     QualityControlImage(DCM_QualityControlImage),
@@ -155,7 +173,6 @@ DRTDoseIOD::DRTDoseIOD()
     SliceLocation(DCM_SliceLocation),
     Rows(DCM_Rows),
     Columns(DCM_Columns),
-    PixelData(DCM_PixelData),
     PlanarConfiguration(DCM_PlanarConfiguration),
     PixelAspectRatio(DCM_PixelAspectRatio),
     SmallestImagePixelValue(DCM_SmallestImagePixelValue),
@@ -167,6 +184,8 @@ DRTDoseIOD::DRTDoseIOD()
     GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData),
     ICCProfile(DCM_ICCProfile),
+    ColorSpace(DCM_ColorSpace),
+    PixelData(DCM_PixelData),
     PixelDataProviderURL(DCM_PixelDataProviderURL),
     PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit),
     NumberOfFrames(DCM_NumberOfFrames),
@@ -236,6 +255,8 @@ DRTDoseIOD::DRTDoseIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -267,6 +288,9 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -282,12 +306,19 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -321,7 +352,16 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -341,6 +381,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -365,6 +406,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -377,9 +419,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     AcquisitionDate(copy.AcquisitionDate),
     AcquisitionTime(copy.AcquisitionTime),
     AcquisitionDateTime(copy.AcquisitionDateTime),
-    ReferencedImageSequence(copy.ReferencedImageSequence),
-    DerivationDescription(copy.DerivationDescription),
-    SourceImageSequence(copy.SourceImageSequence),
     ImagesInAcquisition(copy.ImagesInAcquisition),
     ImageComments(copy.ImageComments),
     QualityControlImage(copy.QualityControlImage),
@@ -399,7 +438,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     SliceLocation(copy.SliceLocation),
     Rows(copy.Rows),
     Columns(copy.Columns),
-    PixelData(copy.PixelData),
     PlanarConfiguration(copy.PlanarConfiguration),
     PixelAspectRatio(copy.PixelAspectRatio),
     SmallestImagePixelValue(copy.SmallestImagePixelValue),
@@ -411,6 +449,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData),
     ICCProfile(copy.ICCProfile),
+    ColorSpace(copy.ColorSpace),
+    PixelData(copy.PixelData),
     PixelDataProviderURL(copy.PixelDataProviderURL),
     PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit),
     NumberOfFrames(copy.NumberOfFrames),
@@ -480,6 +520,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -517,6 +559,9 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -532,12 +577,19 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -571,7 +623,16 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -591,6 +652,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -615,6 +677,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -627,9 +690,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         AcquisitionDate = copy.AcquisitionDate;
         AcquisitionTime = copy.AcquisitionTime;
         AcquisitionDateTime = copy.AcquisitionDateTime;
-        ReferencedImageSequence = copy.ReferencedImageSequence;
-        DerivationDescription = copy.DerivationDescription;
-        SourceImageSequence = copy.SourceImageSequence;
         ImagesInAcquisition = copy.ImagesInAcquisition;
         ImageComments = copy.ImageComments;
         QualityControlImage = copy.QualityControlImage;
@@ -649,7 +709,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         SliceLocation = copy.SliceLocation;
         Rows = copy.Rows;
         Columns = copy.Columns;
-        PixelData = copy.PixelData;
         PlanarConfiguration = copy.PlanarConfiguration;
         PixelAspectRatio = copy.PixelAspectRatio;
         SmallestImagePixelValue = copy.SmallestImagePixelValue;
@@ -661,6 +720,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData;
         BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData;
         ICCProfile = copy.ICCProfile;
+        ColorSpace = copy.ColorSpace;
+        PixelData = copy.PixelData;
         PixelDataProviderURL = copy.PixelDataProviderURL;
         PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit;
         NumberOfFrames = copy.NumberOfFrames;
@@ -730,6 +791,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -762,6 +825,9 @@ void DRTDoseIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -777,12 +843,19 @@ void DRTDoseIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -816,7 +889,16 @@ void DRTDoseIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -836,6 +918,7 @@ void DRTDoseIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -860,6 +943,7 @@ void DRTDoseIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -873,11 +957,6 @@ void DRTDoseIOD::clear()
     AcquisitionDate.clear();
     AcquisitionTime.clear();
     AcquisitionDateTime.clear();
-    ReferencedImageSequence.clear();
-    DerivationDescription.clear();
-    DerivationCodeSequence.clear();
-    SourceImageSequence.clear();
-    ReferencedInstanceSequence.clear();
     ImagesInAcquisition.clear();
     ImageComments.clear();
     QualityControlImage.clear();
@@ -903,7 +982,6 @@ void DRTDoseIOD::clear()
     BitsStored.clear();
     HighBit.clear();
     PixelRepresentation.clear();
-    PixelData.clear();
     PlanarConfiguration.clear();
     PixelAspectRatio.clear();
     SmallestImagePixelValue.clear();
@@ -915,6 +993,8 @@ void DRTDoseIOD::clear()
     GreenPaletteColorLookupTableData.clear();
     BluePaletteColorLookupTableData.clear();
     ICCProfile.clear();
+    ColorSpace.clear();
+    PixelData.clear();
     PixelDataProviderURL.clear();
     PixelPaddingRangeLimit.clear();
     NumberOfFrames.clear();
@@ -951,6 +1031,8 @@ void DRTDoseIOD::clear()
     GridFrameOffsetVector.clear();
     DoseGridScaling.clear();
     TissueHeterogeneityCorrection.clear();
+    DerivationCodeSequence.clear();
+    ReferencedInstanceSequence.clear();
     ReferencedStructureSetSequence.clear();
     DVHNormalizationPoint.clear();
     DVHNormalizationDoseValue.clear();
@@ -975,6 +1057,8 @@ void DRTDoseIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -1055,6 +1139,7 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -1070,11 +1155,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule");
-        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule");
-        // DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        // ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule");
@@ -1113,7 +1193,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
             // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule");
             // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule");
             // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule");
-            getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule");
@@ -1125,6 +1204,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule");
+            getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule");
+            getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule");
         }
@@ -1248,6 +1329,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -1290,6 +1373,9 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -1305,12 +1391,19 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -1366,7 +1459,16 @@ OFCondition DRTDoseIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -1403,6 +1505,7 @@ OFCondition DRTDoseIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -1441,6 +1544,9 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1456,12 +1562,19 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1506,7 +1619,16 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1534,6 +1656,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1567,6 +1690,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1584,11 +1708,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule");
-            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule");
-            // if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-            // if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule");
@@ -1624,7 +1743,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule");
             // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule");
             // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule");
-            addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule");
@@ -1636,6 +1754,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule");
+            addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule");
+            addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule");
         }
@@ -1751,6 +1871,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1817,7 +1939,16 @@ OFBool DRTDoseIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1858,9 +1989,6 @@ OFBool DRTDoseIOD::isGeneralImageModulePresent(const OFBool /*complete*/)
            !AcquisitionDate.isEmpty() ||
            !AcquisitionTime.isEmpty() ||
            !AcquisitionDateTime.isEmpty() ||
-           !ReferencedImageSequence.isEmpty() ||
-           !DerivationDescription.isEmpty() ||
-           !SourceImageSequence.isEmpty() ||
            !ImagesInAcquisition.isEmpty() ||
            !ImageComments.isEmpty() ||
            !QualityControlImage.isEmpty() ||
@@ -1906,7 +2034,6 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete)
         /* check whether at least one attribute is present */
         return !Rows.isEmpty() ||
                !Columns.isEmpty() ||
-               !PixelData.isEmpty() ||
                !PlanarConfiguration.isEmpty() ||
                !PixelAspectRatio.isEmpty() ||
                !SmallestImagePixelValue.isEmpty() ||
@@ -1918,6 +2045,8 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete)
                !GreenPaletteColorLookupTableData.isEmpty() ||
                !BluePaletteColorLookupTableData.isEmpty() ||
                !ICCProfile.isEmpty() ||
+               !ColorSpace.isEmpty() ||
+               !PixelData.isEmpty() ||
                !PixelDataProviderURL.isEmpty() ||
                !PixelPaddingRangeLimit.isEmpty();
     }
@@ -2116,6 +2245,12 @@ OFCondition DRTDoseIOD::getAdmittingDiagnosesDescription(OFString &value, const
 }
 
 
+OFCondition DRTDoseIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
@@ -2245,6 +2380,12 @@ OFCondition DRTDoseIOD::getClinicalTrialTimePointID(OFString &value, const signe
 }
 
 
+OFCondition DRTDoseIOD::getColorSpace(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(ColorSpace, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getColumns(Uint16 &value, const unsigned long pos) const
 {
     return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos);
@@ -2323,12 +2464,6 @@ OFCondition DRTDoseIOD::getDeidentificationMethod(OFString &value, const signed
 }
 
 
-OFCondition DRTDoseIOD::getDerivationDescription(OFString &value, const signed long pos) const
-{
-    return getStringValueFromElement(DerivationDescription, value, pos);
-}
-
-
 OFCondition DRTDoseIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -2593,6 +2728,12 @@ OFCondition DRTDoseIOD::getLargestImagePixelValue(Uint16 &value, const unsigned
 }
 
 
+OFCondition DRTDoseIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -2641,6 +2782,36 @@ OFCondition DRTDoseIOD::getManufacturerModelName(OFString &value, const signed l
 }
 
 
+OFCondition DRTDoseIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -2785,18 +2956,42 @@ OFCondition DRTDoseIOD::getPatientAge(OFString &value, const signed long pos) co
 }
 
 
+OFCondition DRTDoseIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTDoseIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTDoseIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -2809,6 +3004,12 @@ OFCondition DRTDoseIOD::getPatientComments(OFString &value, const signed long po
 }
 
 
+OFCondition DRTDoseIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -2863,6 +3064,12 @@ OFCondition DRTDoseIOD::getPatientSpeciesDescription(OFString &value, const sign
 }
 
 
+OFCondition DRTDoseIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -2989,6 +3196,12 @@ OFCondition DRTDoseIOD::getPositionReferenceIndicator(OFString &value, const sig
 }
 
 
+OFCondition DRTDoseIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPresentationLUTShape(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PresentationLUTShape, value, pos);
@@ -3256,6 +3469,12 @@ OFCondition DRTDoseIOD::getSmallestImagePixelValue(Uint16 &value, const unsigned
 }
 
 
+OFCondition DRTDoseIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -3298,6 +3517,24 @@ OFCondition DRTDoseIOD::getStereoPairsPresent(OFString &value, const signed long
 }
 
 
+OFCondition DRTDoseIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getStructureSetDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StructureSetDate, value, pos);
@@ -3448,6 +3685,15 @@ OFCondition DRTDoseIOD::setAdmittingDiagnosesDescription(const OFString &value,
 }
 
 
+OFCondition DRTDoseIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -3616,6 +3862,15 @@ OFCondition DRTDoseIOD::setClinicalTrialTimePointID(const OFString &value, const
 }
 
 
+OFCondition DRTDoseIOD::setColorSpace(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = ColorSpace.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setColumns(const Uint16 value, const unsigned long pos)
 {
     return Columns.putUint16(value, pos);
@@ -3703,15 +3958,6 @@ OFCondition DRTDoseIOD::setDeidentificationMethod(const OFString &value, const O
 }
 
 
-OFCondition DRTDoseIOD::setDerivationDescription(const OFString &value, const OFBool check)
-{
-    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
-    if (result.good())
-        result = DerivationDescription.putOFStringArray(value);
-    return result;
-}
-
-
 OFCondition DRTDoseIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -3982,6 +4228,15 @@ OFCondition DRTDoseIOD::setLargestImagePixelValue(const Uint16 value, const unsi
 }
 
 
+OFCondition DRTDoseIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4036,6 +4291,33 @@ OFCondition DRTDoseIOD::setManufacturerModelName(const OFString &value, const OF
 }
 
 
+OFCondition DRTDoseIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4201,6 +4483,15 @@ OFCondition DRTDoseIOD::setPatientAge(const OFString &value, const OFBool check)
 }
 
 
+OFCondition DRTDoseIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -4210,6 +4501,15 @@ OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTDoseIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -4219,6 +4519,15 @@ OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTDoseIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4237,6 +4546,15 @@ OFCondition DRTDoseIOD::setPatientComments(const OFString &value, const OFBool c
 }
 
 
+OFCondition DRTDoseIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4309,6 +4627,15 @@ OFCondition DRTDoseIOD::setPatientSpeciesDescription(const OFString &value, cons
 }
 
 
+OFCondition DRTDoseIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -4450,6 +4777,12 @@ OFCondition DRTDoseIOD::setPositionReferenceIndicator(const OFString &value, con
 }
 
 
+OFCondition DRTDoseIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTDoseIOD::setPresentationLUTShape(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4750,6 +5083,15 @@ OFCondition DRTDoseIOD::setSmallestImagePixelValue(const Uint16 value, const uns
 }
 
 
+OFCondition DRTDoseIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -4804,6 +5146,33 @@ OFCondition DRTDoseIOD::setStereoPairsPresent(const OFString &value, const OFBoo
 }
 
 
+OFCondition DRTDoseIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setStructureSetDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index 4cc00b71c4436407d38540fe072b8d5aa2bb1238..e709dc20ee6a0c27866ccf61d6bc96057d69779a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 69b00cf1dddaf1c87b57d874c770541d331fc27e..9061a4481a6857643da5f266306d5c3d3adde556 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -44,6 +44,7 @@ DRTDeviceSequence::Item::Item(const OFBool emptyDefaultItem)
     Manufacturer(DCM_Manufacturer),
     ManufacturerModelName(DCM_ManufacturerModelName),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -75,6 +76,7 @@ DRTDeviceSequence::Item::Item(const Item &copy)
     Manufacturer(copy.Manufacturer),
     ManufacturerModelName(copy.ManufacturerModelName),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -114,6 +116,7 @@ DRTDeviceSequence::Item &DRTDeviceSequence::Item::operator=(const Item &copy)
         Manufacturer = copy.Manufacturer;
         ManufacturerModelName = copy.ManufacturerModelName;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -137,6 +140,7 @@ void DRTDeviceSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -168,6 +172,7 @@ OFBool DRTDeviceSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -209,6 +214,7 @@ OFCondition DRTDeviceSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeviceSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeviceSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeviceSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeviceSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeviceSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeviceSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeviceSequence");
@@ -246,6 +252,7 @@ OFCondition DRTDeviceSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeviceSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeviceSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeviceSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeviceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeviceSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeviceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeviceSequence");
@@ -499,6 +506,15 @@ OFCondition DRTDeviceSequence::Item::getMappingResource(OFString &value, const s
 }
 
 
+OFCondition DRTDeviceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDeviceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -803,6 +819,19 @@ OFCondition DRTDeviceSequence::Item::setMappingResource(const OFString &value, c
 }
 
 
+OFCondition DRTDeviceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDeviceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index a03182d30910dac0334a7c4b1ccc93a601e98fa5..723d23dd480c67d7eb9afba84436f5b9ae579bfa 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDigitalSignaturePurposeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const OFBool emptyDefaultItem
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequ
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTDigitalSignaturePurposeCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTDigitalSignaturePurposeCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DigitalSignaturePurposeCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DigitalSignaturePurposeCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResource(OFS
 }
 
 
+OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResource(con
 }
 
 
+OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index e9e173aec75b67ddf5f19b37debaffc7168d9051..139c075d19bf2d128e4ab5c3db5cd1748abea368 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDigitalSignaturesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 328a7650e4385d3c40c80bf7aef31c6c01fb6ce6..1969101f27d6c3f414285c6ed303a12315bcb1cd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDVHSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index eec70c2378401d8d57920b6350798f70a9d024c8..217d76f5b3f33880afc8ae16d5148ae92d997f84 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDVHReferencedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 53d8069d93e62717124746d96bf4a941dd37becc..02e07a87ca31206cd5a430f2df11cfd5268a31c3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTEncryptedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4f07d4c5d7296fd7ecd71326c706dd81709488f1..26e6b76d1d6ed8585163071d917c4a2250747c51 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTEquivalentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,7 +25,16 @@ DRTEquivalentCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     CodeValue(DCM_CodeValue),
     CodingSchemeDesignator(DCM_CodingSchemeDesignator),
     CodingSchemeVersion(DCM_CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(DCM_ContextGroupLocalVersion),
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
     LongCodeValue(DCM_LongCodeValue),
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
@@ -37,7 +46,16 @@ DRTEquivalentCodeSequence::Item::Item(const Item &copy)
     CodeValue(copy.CodeValue),
     CodingSchemeDesignator(copy.CodingSchemeDesignator),
     CodingSchemeVersion(copy.CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(copy.ContextGroupLocalVersion),
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
     LongCodeValue(copy.LongCodeValue),
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
 }
@@ -57,7 +75,16 @@ DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::Item::operator=(cons
         CodeValue = copy.CodeValue;
         CodingSchemeDesignator = copy.CodingSchemeDesignator;
         CodingSchemeVersion = copy.CodingSchemeVersion;
+        ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID;
+        ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag;
+        ContextGroupLocalVersion = copy.ContextGroupLocalVersion;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
         LongCodeValue = copy.LongCodeValue;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
     return *this;
@@ -75,6 +102,15 @@ void DRTEquivalentCodeSequence::Item::clear()
         CodeMeaning.clear();
         LongCodeValue.clear();
         URNCodeValue.clear();
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
+        ContextGroupVersion.clear();
+        ContextGroupExtensionFlag.clear();
+        ContextGroupLocalVersion.clear();
+        ContextGroupExtensionCreatorUID.clear();
     }
 }
 
@@ -86,7 +122,16 @@ OFBool DRTEquivalentCodeSequence::Item::isEmpty()
            CodingSchemeVersion.isEmpty() &&
            CodeMeaning.isEmpty() &&
            LongCodeValue.isEmpty() &&
-           URNCodeValue.isEmpty();
+           URNCodeValue.isEmpty() &&
+           ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
+           ContextGroupVersion.isEmpty() &&
+           ContextGroupExtensionFlag.isEmpty() &&
+           ContextGroupLocalVersion.isEmpty() &&
+           ContextGroupExtensionCreatorUID.isEmpty();
 }
 
 
@@ -109,6 +154,15 @@ OFCondition DRTEquivalentCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "EquivalentCodeSequence");
         getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "EquivalentCodeSequence");
         getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "EquivalentCodeSequence");
         result = EC_Normal;
     }
     return result;
@@ -127,6 +181,15 @@ OFCondition DRTEquivalentCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "EquivalentCodeSequence");
         addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "EquivalentCodeSequence");
         addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "EquivalentCodeSequence");
     }
     return result;
 }
@@ -168,6 +231,60 @@ OFCondition DRTEquivalentCodeSequence::Item::getCodingSchemeVersion(OFString &va
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionFlag, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupLocalVersion, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextIdentifier, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextUID, value, pos);
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -177,6 +294,33 @@ OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, c
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -238,6 +382,84 @@ OFCondition DRTEquivalentCodeSequence::Item::setCodingSchemeVersion(const OFStri
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionCreatorUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionFlag.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupLocalVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -251,6 +473,45 @@ OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &va
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 58d00279bcc4cfc8aba305282331bda9a2161c06..e1654d784245bc8c67fa26c3a6e7ee19428e8a99 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTExposureSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3a69a6347595cd690cfc525382242d4d7a2b0388..f258e358f63d5a9ee4ebcf9e7d61ae7c928111a4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFixationDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index add7207f2fe6aa457188daeb56bf57cdfb2a8cf2..d9df793beb4beb9a33c692df3b7b7596be05f164 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFrameExtractionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c82bde54ec47eaafd392744bbab5ede655261188..b53b00a512fff32864f8e45340f36686c89a9346 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6bfe62a743844e33d21702b84d45b615e39fc4f6..6abf72e34cb50d7399f0f0e8b6b95400d4f116d2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFractionGroupSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a0e73bb8dab7e82baa41bf9fcefc1e0d8c27ba97..878e8c7c55cfdfa4285d1f6cc34493b82f153273 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFluenceMapSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 75400c7fa1875b04a7f68ee9917f853cbafc998f..25991a54d92e518805a1f80713c9de9a4fc4ebbe 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFractionStatusSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 613c9f25e9a6a8568f7bb83c0eba5fc96e813432..72c6888b07aaa4bfe2d415b25038de7d9e4d9156 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTGeneralAccessorySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtgpis.cc b/dcmrt/libsrc/drtgpis.cc
new file mode 100644 (file)
index 0000000..6d1bf15
--- /dev/null
@@ -0,0 +1,634 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTGroupOfPatientsIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtgpis.h"
+
+
+// --- item class ---
+
+DRTGroupOfPatientsIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    IssuerOfPatientID(DCM_IssuerOfPatientID),
+    IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    PatientID(DCM_PatientID),
+    PatientPosition(DCM_PatientPosition),
+    SubjectRelativePositionInImage(DCM_SubjectRelativePositionInImage)
+{
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    IssuerOfPatientID(copy.IssuerOfPatientID),
+    IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
+    PatientID(copy.PatientID),
+    PatientPosition(copy.PatientPosition),
+    SubjectRelativePositionInImage(copy.SubjectRelativePositionInImage)
+{
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::Item::~Item()
+{
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        IssuerOfPatientID = copy.IssuerOfPatientID;
+        IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
+        PatientID = copy.PatientID;
+        PatientPosition = copy.PatientPosition;
+        SubjectRelativePositionInImage = copy.SubjectRelativePositionInImage;
+    }
+    return *this;
+}
+
+
+void DRTGroupOfPatientsIdentificationSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        PatientID.clear();
+        IssuerOfPatientID.clear();
+        IssuerOfPatientIDQualifiersSequence.clear();
+        SubjectRelativePositionInImage.clear();
+        PatientPosition.clear();
+    }
+}
+
+
+OFBool DRTGroupOfPatientsIdentificationSequence::Item::isEmpty()
+{
+    return PatientID.isEmpty() &&
+           IssuerOfPatientID.isEmpty() &&
+           IssuerOfPatientIDQualifiersSequence.isEmpty() &&
+           SubjectRelativePositionInImage.isEmpty() &&
+           PatientPosition.isEmpty();
+}
+
+
+OFBool DRTGroupOfPatientsIdentificationSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, PatientID, "1", "1", "GroupOfPatientsIdentificationSequence");
+        getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "GroupOfPatientsIdentificationSequence");
+        IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "GroupOfPatientsIdentificationSequence");
+        getAndCheckElementFromDataset(item, SubjectRelativePositionInImage, "3", "3", "GroupOfPatientsIdentificationSequence");
+        getAndCheckElementFromDataset(item, PatientPosition, "1", "3", "GroupOfPatientsIdentificationSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "GroupOfPatientsIdentificationSequence");
+        addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "GroupOfPatientsIdentificationSequence");
+        if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "GroupOfPatientsIdentificationSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(SubjectRelativePositionInImage), "3", "3", "GroupOfPatientsIdentificationSequence");
+        addElementToDataset(result, item, new DcmCodeString(PatientPosition), "1", "3", "GroupOfPatientsIdentificationSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(IssuerOfPatientID, value, pos);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PatientID, value, pos);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientPosition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PatientPosition, value, pos);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedShort &, SubjectRelativePositionInImage).getUint16(value, pos);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = IssuerOfPatientID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PatientID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientPosition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PatientPosition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return SubjectRelativePositionInImage.putUint16(value, pos);
+}
+
+
+// --- sequence class ---
+
+DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTGroupOfPatientsIdentificationSequence &DRTGroupOfPatientsIdentificationSequence::operator=(const DRTGroupOfPatientsIdentificationSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::~DRTGroupOfPatientsIdentificationSequence()
+{
+    clear();
+}
+
+
+void DRTGroupOfPatientsIdentificationSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTGroupOfPatientsIdentificationSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTGroupOfPatientsIdentificationSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTGroupOfPatientsIdentificationSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::read(DcmItem &dataset,
+                                                           const OFString &card,
+                                                           const OFString &type,
+                                                           const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_GroupOfPatientsIdentificationSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_GroupOfPatientsIdentificationSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::write(DcmItem &dataset,
+                                                            const OFString &card,
+                                                            const OFString &type,
+                                                            const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_GroupOfPatientsIdentificationSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 129979a744abdc7b0d531fafb0a13bad9aeda20f..ce61e35984117246bfe04a22822937d0efd0d541 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTHL7StructuredDocumentReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c206dae8267efb97e42d3a7e1cfc36377ad43723..62a31903a7e87c2c33869b73995518590df98bed 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfAdmissionIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6e0bb83a0c5c3b601c8f24d5103107a23e2f88b7..64a3f18185cc72d7aa571685d0de762074228441 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfAccessionNumberSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0cc4309dc014ad26206565d64c6ab908b502b306..1cddc44cf9c6941e16b8b4e6a05dcb679dc0b32f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBeamLimitingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a58a0380d05922f3f5fcc1e4522f55a1e42d414e..1a5aeb0dc064292ff8483c1ef310cc8d42a17a4b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 88cffe1948676b94be065182d96b9b5060ec6558..022da8de6f16215a57726c96fd4ccae0e0384e0c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -26,8 +26,10 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem)
     BeamName(DCM_BeamName),
     BeamNumber(DCM_BeamNumber),
     BeamType(DCM_BeamType),
+    DepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     FinalCumulativeMetersetWeight(DCM_FinalCumulativeMetersetWeight),
+    FixationEye(DCM_FixationEye),
     FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle),
     FixationLightPolarAngle(DCM_FixationLightPolarAngle),
     GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/),
@@ -42,6 +44,7 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem)
     LateralSpreadingDeviceSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     Manufacturer(DCM_Manufacturer),
     ManufacturerModelName(DCM_ManufacturerModelName),
+    ModulatedScanModeType(DCM_ModulatedScanModeType),
     NumberOfBlocks(DCM_NumberOfBlocks),
     NumberOfBoli(DCM_NumberOfBoli),
     NumberOfCompensators(DCM_NumberOfCompensators),
@@ -84,8 +87,10 @@ DRTIonBeamSequence::Item::Item(const Item &copy)
     BeamName(copy.BeamName),
     BeamNumber(copy.BeamNumber),
     BeamType(copy.BeamType),
+    DepthDoseParametersSequence(copy.DepthDoseParametersSequence),
     DeviceSerialNumber(copy.DeviceSerialNumber),
     FinalCumulativeMetersetWeight(copy.FinalCumulativeMetersetWeight),
+    FixationEye(copy.FixationEye),
     FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle),
     FixationLightPolarAngle(copy.FixationLightPolarAngle),
     GeneralAccessorySequence(copy.GeneralAccessorySequence),
@@ -100,6 +105,7 @@ DRTIonBeamSequence::Item::Item(const Item &copy)
     LateralSpreadingDeviceSequence(copy.LateralSpreadingDeviceSequence),
     Manufacturer(copy.Manufacturer),
     ManufacturerModelName(copy.ManufacturerModelName),
+    ModulatedScanModeType(copy.ModulatedScanModeType),
     NumberOfBlocks(copy.NumberOfBlocks),
     NumberOfBoli(copy.NumberOfBoli),
     NumberOfCompensators(copy.NumberOfCompensators),
@@ -150,8 +156,10 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item &copy)
         BeamName = copy.BeamName;
         BeamNumber = copy.BeamNumber;
         BeamType = copy.BeamType;
+        DepthDoseParametersSequence = copy.DepthDoseParametersSequence;
         DeviceSerialNumber = copy.DeviceSerialNumber;
         FinalCumulativeMetersetWeight = copy.FinalCumulativeMetersetWeight;
+        FixationEye = copy.FixationEye;
         FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle;
         FixationLightPolarAngle = copy.FixationLightPolarAngle;
         GeneralAccessorySequence = copy.GeneralAccessorySequence;
@@ -166,6 +174,7 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item &copy)
         LateralSpreadingDeviceSequence = copy.LateralSpreadingDeviceSequence;
         Manufacturer = copy.Manufacturer;
         ManufacturerModelName = copy.ManufacturerModelName;
+        ModulatedScanModeType = copy.ModulatedScanModeType;
         NumberOfBlocks = copy.NumberOfBlocks;
         NumberOfBoli = copy.NumberOfBoli;
         NumberOfCompensators = copy.NumberOfCompensators;
@@ -216,6 +225,7 @@ void DRTIonBeamSequence::Item::clear()
         RadiationAtomicNumber.clear();
         RadiationChargeState.clear();
         ScanMode.clear();
+        ModulatedScanModeType.clear();
         TreatmentMachineName.clear();
         Manufacturer.clear();
         InstitutionName.clear();
@@ -226,6 +236,7 @@ void DRTIonBeamSequence::Item::clear()
         PrimaryDosimeterUnit.clear();
         ReferencedToleranceTableNumber.clear();
         VirtualSourceAxisDistances.clear();
+        DepthDoseParametersSequence.clear();
         IonBeamLimitingDeviceSequence.clear();
         ReferencedPatientSetupNumber.clear();
         ReferencedReferenceImageSequence.clear();
@@ -256,6 +267,7 @@ void DRTIonBeamSequence::Item::clear()
         PatientSupportAccessoryCode.clear();
         FixationLightAzimuthalAngle.clear();
         FixationLightPolarAngle.clear();
+        FixationEye.clear();
         FinalCumulativeMetersetWeight.clear();
         NumberOfControlPoints.clear();
         IonControlPointSequence.clear();
@@ -274,6 +286,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty()
            RadiationAtomicNumber.isEmpty() &&
            RadiationChargeState.isEmpty() &&
            ScanMode.isEmpty() &&
+           ModulatedScanModeType.isEmpty() &&
            TreatmentMachineName.isEmpty() &&
            Manufacturer.isEmpty() &&
            InstitutionName.isEmpty() &&
@@ -284,6 +297,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty()
            PrimaryDosimeterUnit.isEmpty() &&
            ReferencedToleranceTableNumber.isEmpty() &&
            VirtualSourceAxisDistances.isEmpty() &&
+           DepthDoseParametersSequence.isEmpty() &&
            IonBeamLimitingDeviceSequence.isEmpty() &&
            ReferencedPatientSetupNumber.isEmpty() &&
            ReferencedReferenceImageSequence.isEmpty() &&
@@ -314,6 +328,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty()
            PatientSupportAccessoryCode.isEmpty() &&
            FixationLightAzimuthalAngle.isEmpty() &&
            FixationLightPolarAngle.isEmpty() &&
+           FixationEye.isEmpty() &&
            FinalCumulativeMetersetWeight.isEmpty() &&
            NumberOfControlPoints.isEmpty() &&
            IonControlPointSequence.isEmpty();
@@ -342,6 +357,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, ScanMode, "1", "1", "IonBeamSequence");
+        getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, TreatmentMachineName, "1", "2", "IonBeamSequence");
         getAndCheckElementFromDataset(item, Manufacturer, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, InstitutionName, "1", "3", "IonBeamSequence");
@@ -352,6 +368,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, PrimaryDosimeterUnit, "1", "1", "IonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, VirtualSourceAxisDistances, "2", "1", "IonBeamSequence");
+        DepthDoseParametersSequence.read(item, "1-n", "3", "IonBeamSequence");
         IonBeamLimitingDeviceSequence.read(item, "1-n", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "IonBeamSequence");
         ReferencedReferenceImageSequence.read(item, "1-n", "3", "IonBeamSequence");
@@ -382,6 +399,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "IonBeamSequence");
+        getAndCheckElementFromDataset(item, FixationEye, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, FinalCumulativeMetersetWeight, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "IonBeamSequence");
         IonControlPointSequence.read(item, "1-n", "1", "IonBeamSequence");
@@ -406,6 +424,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "IonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmShortString(TreatmentMachineName), "1", "2", "IonBeamSequence");
         addElementToDataset(result, item, new DcmLongString(Manufacturer), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmLongString(InstitutionName), "1", "3", "IonBeamSequence");
@@ -416,6 +435,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmCodeString(PrimaryDosimeterUnit), "1", "1", "IonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(VirtualSourceAxisDistances), "2", "1", "IonBeamSequence");
+        if (result.good()) result = DepthDoseParametersSequence.write(item, "1-n", "3", "IonBeamSequence");
         if (result.good()) result = IonBeamLimitingDeviceSequence.write(item, "1-n", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "IonBeamSequence");
         if (result.good()) result = ReferencedReferenceImageSequence.write(item, "1-n", "3", "IonBeamSequence");
@@ -446,6 +466,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "IonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(FinalCumulativeMetersetWeight), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "IonBeamSequence");
         if (result.good()) result = IonControlPointSequence.write(item, "1-n", "1", "IonBeamSequence");
@@ -526,6 +547,15 @@ OFCondition DRTIonBeamSequence::Item::getFinalCumulativeMetersetWeight(Float64 &
 }
 
 
+OFCondition DRTIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationEye, value, pos);
+}
+
+
 OFCondition DRTIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -589,6 +619,15 @@ OFCondition DRTIonBeamSequence::Item::getManufacturerModelName(OFString &value,
 }
 
 
+OFCondition DRTIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ModulatedScanModeType, value, pos);
+}
+
+
 OFCondition DRTIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -1000,6 +1039,19 @@ OFCondition DRTIonBeamSequence::Item::setFinalCumulativeMetersetWeight(const OFS
 }
 
 
+OFCondition DRTIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationEye.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -1083,6 +1135,19 @@ OFCondition DRTIonBeamSequence::Item::setManufacturerModelName(const OFString &v
 }
 
 
+OFCondition DRTIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ModulatedScanModeType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 5645f8142108c6f181c5ce0a726b3cfb3d831a4a..b0ed84b53f0843d935b6cd8790d747a3097e5740 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonControlPointDeliverySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -24,6 +24,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem)
     BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(DCM_ChairHeadFramePosition),
     CorrectedParameterSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     DeliveredMeterset(DCM_DeliveredMeterset),
     GantryAngle(DCM_GantryAngle),
@@ -47,6 +48,8 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem)
     ReferencedControlPointIndex(DCM_ReferencedControlPointIndex),
     ScanSpotMetersetsDelivered(DCM_ScanSpotMetersetsDelivered),
     ScanSpotPositionMap(DCM_ScanSpotPositionMap),
+    ScanSpotPrescribedIndices(DCM_ScanSpotPrescribedIndices),
+    ScanSpotReordered(DCM_ScanSpotReordered),
     ScanSpotTuneID(DCM_ScanSpotTuneID),
     ScanningSpotSize(DCM_ScanningSpotSize),
     SnoutPosition(DCM_SnoutPosition),
@@ -69,6 +72,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item &copy)
     BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence),
     BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(copy.ChairHeadFramePosition),
     CorrectedParameterSequence(copy.CorrectedParameterSequence),
     DeliveredMeterset(copy.DeliveredMeterset),
     GantryAngle(copy.GantryAngle),
@@ -92,6 +96,8 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item &copy)
     ReferencedControlPointIndex(copy.ReferencedControlPointIndex),
     ScanSpotMetersetsDelivered(copy.ScanSpotMetersetsDelivered),
     ScanSpotPositionMap(copy.ScanSpotPositionMap),
+    ScanSpotPrescribedIndices(copy.ScanSpotPrescribedIndices),
+    ScanSpotReordered(copy.ScanSpotReordered),
     ScanSpotTuneID(copy.ScanSpotTuneID),
     ScanningSpotSize(copy.ScanningSpotSize),
     SnoutPosition(copy.SnoutPosition),
@@ -122,6 +128,7 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It
         BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle;
         BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence;
         BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection;
+        ChairHeadFramePosition = copy.ChairHeadFramePosition;
         CorrectedParameterSequence = copy.CorrectedParameterSequence;
         DeliveredMeterset = copy.DeliveredMeterset;
         GantryAngle = copy.GantryAngle;
@@ -145,6 +152,8 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It
         ReferencedControlPointIndex = copy.ReferencedControlPointIndex;
         ScanSpotMetersetsDelivered = copy.ScanSpotMetersetsDelivered;
         ScanSpotPositionMap = copy.ScanSpotPositionMap;
+        ScanSpotPrescribedIndices = copy.ScanSpotPrescribedIndices;
+        ScanSpotReordered = copy.ScanSpotReordered;
         ScanSpotTuneID = copy.ScanSpotTuneID;
         ScanningSpotSize = copy.ScanningSpotSize;
         SnoutPosition = copy.SnoutPosition;
@@ -194,6 +203,8 @@ void DRTIonControlPointDeliverySequence::Item::clear()
         ScanSpotMetersetsDelivered.clear();
         ScanningSpotSize.clear();
         NumberOfPaintings.clear();
+        ScanSpotReordered.clear();
+        ScanSpotPrescribedIndices.clear();
         PatientSupportAngle.clear();
         PatientSupportRotationDirection.clear();
         TableTopPitchAngle.clear();
@@ -201,6 +212,7 @@ void DRTIonControlPointDeliverySequence::Item::clear()
         TableTopRollAngle.clear();
         TableTopRollRotationDirection.clear();
         HeadFixationAngle.clear();
+        ChairHeadFramePosition.clear();
         TableTopVerticalPosition.clear();
         TableTopLongitudinalPosition.clear();
         TableTopLateralPosition.clear();
@@ -239,6 +251,8 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty()
            ScanSpotMetersetsDelivered.isEmpty() &&
            ScanningSpotSize.isEmpty() &&
            NumberOfPaintings.isEmpty() &&
+           ScanSpotReordered.isEmpty() &&
+           ScanSpotPrescribedIndices.isEmpty() &&
            PatientSupportAngle.isEmpty() &&
            PatientSupportRotationDirection.isEmpty() &&
            TableTopPitchAngle.isEmpty() &&
@@ -246,6 +260,7 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty()
            TableTopRollAngle.isEmpty() &&
            TableTopRollRotationDirection.isEmpty() &&
            HeadFixationAngle.isEmpty() &&
+           ChairHeadFramePosition.isEmpty() &&
            TableTopVerticalPosition.isEmpty() &&
            TableTopLongitudinalPosition.isEmpty() &&
            TableTopLateralPosition.isEmpty() &&
@@ -294,6 +309,8 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ScanSpotMetersetsDelivered, "1-n", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, ScanningSpotSize, "2", "3", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, NumberOfPaintings, "1", "1C", "IonControlPointDeliverySequence");
+        getAndCheckElementFromDataset(item, ScanSpotReordered, "1", "3", "IonControlPointDeliverySequence");
+        getAndCheckElementFromDataset(item, ScanSpotPrescribedIndices, "1-n", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, PatientSupportAngle, "1", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, PatientSupportRotationDirection, "1", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopPitchAngle, "1", "2C", "IonControlPointDeliverySequence");
@@ -301,6 +318,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointDeliverySequence");
+        getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointDeliverySequence");
@@ -345,6 +363,8 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetsDelivered), "1-n", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanningSpotSize), "2", "3", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfPaintings), "1", "1C", "IonControlPointDeliverySequence");
+        addElementToDataset(result, item, new DcmCodeString(ScanSpotReordered), "1", "3", "IonControlPointDeliverySequence");
+        addElementToDataset(result, item, new DcmIntegerString(ScanSpotPrescribedIndices), "1-n", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(PatientSupportAngle), "1", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmCodeString(PatientSupportRotationDirection), "1", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngle), "1", "2C", "IonControlPointDeliverySequence");
@@ -352,6 +372,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointDeliverySequence");
+        addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointDeliverySequence");
@@ -390,6 +411,24 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getBeamLimitingDeviceRotat
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ChairHeadFramePosition, value, pos);
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::getDeliveredMeterset(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -615,6 +654,33 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPositionMap(Flo
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ScanSpotPrescribedIndices, value, pos);
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmIntegerString &, ScanSpotPrescribedIndices).getSint32(value, pos);
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotReordered(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ScanSpotReordered, value, pos);
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -794,6 +860,19 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setBeamLimitingDeviceRotat
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ChairHeadFramePosition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::setDeliveredMeterset(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -991,6 +1070,32 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPositionMap(con
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPrescribedIndices(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal;
+        if (result.good())
+            result = ScanSpotPrescribedIndices.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotReordered(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ScanSpotReordered.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 28430e1ba01b6abfc75275fbebd1c47e577c8229..d7632909a2bbbd0296d38aa97dd697d1f8cd7c89 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -24,6 +24,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem)
     BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(DCM_ChairHeadFramePosition),
     ControlPointIndex(DCM_ControlPointIndex),
     CumulativeMetersetWeight(DCM_CumulativeMetersetWeight),
     ExternalContourEntryPoint(DCM_ExternalContourEntryPoint),
@@ -47,6 +48,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem)
     ReferencedDoseReferenceSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     ScanSpotMetersetWeights(DCM_ScanSpotMetersetWeights),
     ScanSpotPositionMap(DCM_ScanSpotPositionMap),
+    ScanSpotReorderingAllowed(DCM_ScanSpotReorderingAllowed),
     ScanSpotTuneID(DCM_ScanSpotTuneID),
     ScanningSpotSize(DCM_ScanningSpotSize),
     SnoutPosition(DCM_SnoutPosition),
@@ -67,6 +69,7 @@ DRTIonControlPointSequence::Item::Item(const Item &copy)
     BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence),
     BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(copy.ChairHeadFramePosition),
     ControlPointIndex(copy.ControlPointIndex),
     CumulativeMetersetWeight(copy.CumulativeMetersetWeight),
     ExternalContourEntryPoint(copy.ExternalContourEntryPoint),
@@ -90,6 +93,7 @@ DRTIonControlPointSequence::Item::Item(const Item &copy)
     ReferencedDoseReferenceSequence(copy.ReferencedDoseReferenceSequence),
     ScanSpotMetersetWeights(copy.ScanSpotMetersetWeights),
     ScanSpotPositionMap(copy.ScanSpotPositionMap),
+    ScanSpotReorderingAllowed(copy.ScanSpotReorderingAllowed),
     ScanSpotTuneID(copy.ScanSpotTuneID),
     ScanningSpotSize(copy.ScanningSpotSize),
     SnoutPosition(copy.SnoutPosition),
@@ -118,6 +122,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co
         BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle;
         BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence;
         BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection;
+        ChairHeadFramePosition = copy.ChairHeadFramePosition;
         ControlPointIndex = copy.ControlPointIndex;
         CumulativeMetersetWeight = copy.CumulativeMetersetWeight;
         ExternalContourEntryPoint = copy.ExternalContourEntryPoint;
@@ -141,6 +146,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co
         ReferencedDoseReferenceSequence = copy.ReferencedDoseReferenceSequence;
         ScanSpotMetersetWeights = copy.ScanSpotMetersetWeights;
         ScanSpotPositionMap = copy.ScanSpotPositionMap;
+        ScanSpotReorderingAllowed = copy.ScanSpotReorderingAllowed;
         ScanSpotTuneID = copy.ScanSpotTuneID;
         ScanningSpotSize = copy.ScanningSpotSize;
         SnoutPosition = copy.SnoutPosition;
@@ -180,6 +186,7 @@ void DRTIonControlPointSequence::Item::clear()
         BeamLimitingDeviceAngle.clear();
         BeamLimitingDeviceRotationDirection.clear();
         ScanSpotTuneID.clear();
+        ScanSpotReorderingAllowed.clear();
         NumberOfScanSpotPositions.clear();
         ScanSpotPositionMap.clear();
         ScanSpotMetersetWeights.clear();
@@ -192,6 +199,7 @@ void DRTIonControlPointSequence::Item::clear()
         TableTopRollAngle.clear();
         TableTopRollRotationDirection.clear();
         HeadFixationAngle.clear();
+        ChairHeadFramePosition.clear();
         TableTopVerticalPosition.clear();
         TableTopLongitudinalPosition.clear();
         TableTopLateralPosition.clear();
@@ -223,6 +231,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty()
            BeamLimitingDeviceAngle.isEmpty() &&
            BeamLimitingDeviceRotationDirection.isEmpty() &&
            ScanSpotTuneID.isEmpty() &&
+           ScanSpotReorderingAllowed.isEmpty() &&
            NumberOfScanSpotPositions.isEmpty() &&
            ScanSpotPositionMap.isEmpty() &&
            ScanSpotMetersetWeights.isEmpty() &&
@@ -235,6 +244,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty()
            TableTopRollAngle.isEmpty() &&
            TableTopRollRotationDirection.isEmpty() &&
            HeadFixationAngle.isEmpty() &&
+           ChairHeadFramePosition.isEmpty() &&
            TableTopVerticalPosition.isEmpty() &&
            TableTopLongitudinalPosition.isEmpty() &&
            TableTopLateralPosition.isEmpty() &&
@@ -276,6 +286,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, BeamLimitingDeviceAngle, "1", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, BeamLimitingDeviceRotationDirection, "1", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, ScanSpotTuneID, "1", "1C", "IonControlPointSequence");
+        getAndCheckElementFromDataset(item, ScanSpotReorderingAllowed, "1", "3", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, NumberOfScanSpotPositions, "1", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, ScanSpotPositionMap, "1-n", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, ScanSpotMetersetWeights, "1-n", "1C", "IonControlPointSequence");
@@ -288,6 +299,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointSequence");
+        getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointSequence");
@@ -325,6 +337,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmDecimalString(BeamLimitingDeviceAngle), "1", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmCodeString(BeamLimitingDeviceRotationDirection), "1", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmShortString(ScanSpotTuneID), "1", "1C", "IonControlPointSequence");
+        addElementToDataset(result, item, new DcmCodeString(ScanSpotReorderingAllowed), "1", "3", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfScanSpotPositions), "1", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotPositionMap), "1-n", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetWeights), "1-n", "1C", "IonControlPointSequence");
@@ -337,6 +350,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointSequence");
+        addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointSequence");
@@ -376,6 +390,24 @@ OFCondition DRTIonControlPointSequence::Item::getBeamLimitingDeviceRotationDirec
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ChairHeadFramePosition, value, pos);
+}
+
+
+OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::getControlPointIndex(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -628,6 +660,15 @@ OFCondition DRTIonControlPointSequence::Item::getScanSpotPositionMap(Float32 &va
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::getScanSpotReorderingAllowed(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ScanSpotReorderingAllowed, value, pos);
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -798,6 +839,19 @@ OFCondition DRTIonControlPointSequence::Item::setBeamLimitingDeviceRotationDirec
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ChairHeadFramePosition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::setControlPointIndex(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -1008,6 +1062,19 @@ OFCondition DRTIonControlPointSequence::Item::setScanSpotPositionMap(const Float
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::setScanSpotReorderingAllowed(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ScanSpotReorderingAllowed.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index cc4ab0a0db61fe1c17f97cd31eefde963c8ab534..edc3c1a680d7737f257fa1bc83c945c9ef2fc822 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTInstitutionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTInstitutionCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTInstitutionCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::Item::operator=(co
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTInstitutionCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTInstitutionCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTInstitutionCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "InstitutionCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "InstitutionCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTInstitutionCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "InstitutionCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "InstitutionCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTInstitutionCodeSequence::Item::getMappingResource(OFString &value
 }
 
 
+OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTInstitutionCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 145601cf7de9077c463a877a14fd023084d08caa..b8dea8a15750b58b1ca17f937a2ba163b38daa5f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIconImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,6 +25,7 @@ DRTIconImageSequence::Item::Item(const OFBool emptyDefaultItem)
     BitsStored(DCM_BitsStored),
     BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData),
     BluePaletteColorLookupTableDescriptor(DCM_BluePaletteColorLookupTableDescriptor),
+    ColorSpace(DCM_ColorSpace),
     Columns(DCM_Columns),
     GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData),
     GreenPaletteColorLookupTableDescriptor(DCM_GreenPaletteColorLookupTableDescriptor),
@@ -51,6 +52,7 @@ DRTIconImageSequence::Item::Item(const Item &copy)
     BitsStored(copy.BitsStored),
     BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData),
     BluePaletteColorLookupTableDescriptor(copy.BluePaletteColorLookupTableDescriptor),
+    ColorSpace(copy.ColorSpace),
     Columns(copy.Columns),
     GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData),
     GreenPaletteColorLookupTableDescriptor(copy.GreenPaletteColorLookupTableDescriptor),
@@ -85,6 +87,7 @@ DRTIconImageSequence::Item &DRTIconImageSequence::Item::operator=(const Item &co
         BitsStored = copy.BitsStored;
         BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData;
         BluePaletteColorLookupTableDescriptor = copy.BluePaletteColorLookupTableDescriptor;
+        ColorSpace = copy.ColorSpace;
         Columns = copy.Columns;
         GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData;
         GreenPaletteColorLookupTableDescriptor = copy.GreenPaletteColorLookupTableDescriptor;
@@ -119,7 +122,6 @@ void DRTIconImageSequence::Item::clear()
         BitsStored.clear();
         HighBit.clear();
         PixelRepresentation.clear();
-        PixelData.clear();
         PlanarConfiguration.clear();
         PixelAspectRatio.clear();
         SmallestImagePixelValue.clear();
@@ -131,6 +133,8 @@ void DRTIconImageSequence::Item::clear()
         GreenPaletteColorLookupTableData.clear();
         BluePaletteColorLookupTableData.clear();
         ICCProfile.clear();
+        ColorSpace.clear();
+        PixelData.clear();
     }
 }
 
@@ -145,7 +149,6 @@ OFBool DRTIconImageSequence::Item::isEmpty()
            BitsStored.isEmpty() &&
            HighBit.isEmpty() &&
            PixelRepresentation.isEmpty() &&
-           PixelData.isEmpty() &&
            PlanarConfiguration.isEmpty() &&
            PixelAspectRatio.isEmpty() &&
            SmallestImagePixelValue.isEmpty() &&
@@ -156,7 +159,9 @@ OFBool DRTIconImageSequence::Item::isEmpty()
            RedPaletteColorLookupTableData.isEmpty() &&
            GreenPaletteColorLookupTableData.isEmpty() &&
            BluePaletteColorLookupTableData.isEmpty() &&
-           ICCProfile.isEmpty();
+           ICCProfile.isEmpty() &&
+           ColorSpace.isEmpty() &&
+           PixelData.isEmpty();
 }
 
 
@@ -181,7 +186,6 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, BitsStored, "1", "1", "IconImageSequence");
         getAndCheckElementFromDataset(item, HighBit, "1", "1", "IconImageSequence");
         getAndCheckElementFromDataset(item, PixelRepresentation, "1", "1", "IconImageSequence");
-        getAndCheckElementFromDataset(item, PixelData, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, PlanarConfiguration, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, PixelAspectRatio, "2", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, SmallestImagePixelValue, "1", "3", "IconImageSequence");
@@ -193,6 +197,8 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, GreenPaletteColorLookupTableData, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, BluePaletteColorLookupTableData, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, ICCProfile, "1", "3", "IconImageSequence");
+        getAndCheckElementFromDataset(item, ColorSpace, "1", "3", "IconImageSequence");
+        getAndCheckElementFromDataset(item, PixelData, "1", "1", "IconImageSequence");
         result = EC_Normal;
     }
     return result;
@@ -213,7 +219,6 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUnsignedShort(BitsStored), "1", "1", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(HighBit), "1", "1", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(PixelRepresentation), "1", "1", "IconImageSequence");
-        addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmIntegerString(PixelAspectRatio), "2", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "IconImageSequence");
@@ -225,6 +230,8 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "IconImageSequence");
+        addElementToDataset(result, item, new DcmCodeString(ColorSpace), "1", "3", "IconImageSequence");
+        addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1", "IconImageSequence");
     }
     return result;
 }
@@ -276,6 +283,15 @@ OFCondition DRTIconImageSequence::Item::getBluePaletteColorLookupTableDescriptor
 }
 
 
+OFCondition DRTIconImageSequence::Item::getColorSpace(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ColorSpace, value, pos);
+}
+
+
 OFCondition DRTIconImageSequence::Item::getColumns(Uint16 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -486,6 +502,19 @@ OFCondition DRTIconImageSequence::Item::setBluePaletteColorLookupTableDescriptor
 }
 
 
+OFCondition DRTIconImageSequence::Item::setColorSpace(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ColorSpace.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIconImageSequence::Item::setColumns(const Uint16 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
index f55e999e364a19f80f8ee5b36097814f9bc1e39a..b22ed9b572c367b53f790ae74fdfa69f659a8a01 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTImageIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTImageIOD::DRTImageIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTImageIOD::DRTImageIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTImageIOD::DRTImageIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTImageIOD::DRTImageIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTImageIOD::DRTImageIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -133,11 +154,6 @@ DRTImageIOD::DRTImageIOD()
     AcquisitionDate(DCM_AcquisitionDate),
     AcquisitionTime(DCM_AcquisitionTime),
     AcquisitionDateTime(DCM_AcquisitionDateTime),
-    ReferencedImageSequence(),
-    DerivationDescription(DCM_DerivationDescription),
-    DerivationCodeSequence(),
-    SourceImageSequence(),
-    ReferencedInstanceSequence(),
     ImagesInAcquisition(DCM_ImagesInAcquisition),
     ImageComments(DCM_ImageComments),
     QualityControlImage(DCM_QualityControlImage),
@@ -150,9 +166,14 @@ DRTImageIOD::DRTImageIOD()
     PresentationLUTShape(DCM_PresentationLUTShape),
     IrradiationEventUID(DCM_IrradiationEventUID),
     RealWorldValueMappingSequence(),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     Rows(DCM_Rows),
     Columns(DCM_Columns),
-    PixelData(DCM_PixelData),
     PlanarConfiguration(DCM_PlanarConfiguration),
     PixelAspectRatio(DCM_PixelAspectRatio),
     SmallestImagePixelValue(DCM_SmallestImagePixelValue),
@@ -164,6 +185,8 @@ DRTImageIOD::DRTImageIOD()
     GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData),
     ICCProfile(DCM_ICCProfile),
+    ColorSpace(DCM_ColorSpace),
+    PixelData(DCM_PixelData),
     PixelDataProviderURL(DCM_PixelDataProviderURL),
     PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit),
     ContrastBolusAgent(DCM_ContrastBolusAgent),
@@ -241,6 +264,9 @@ DRTImageIOD::DRTImageIOD()
     TableTopLateralPosition(DCM_TableTopLateralPosition),
     IsocenterPosition(DCM_IsocenterPosition),
     PatientPosition(DCM_PatientPosition),
+    ExposureTime(DCM_ExposureTime),
+    ExposureTimeInms(DCM_ExposureTimeInms),
+    MetersetExposure(DCM_MetersetExposure),
     ModalityLUTSequence(),
     RescaleIntercept(DCM_RescaleIntercept),
     RescaleSlope(DCM_RescaleSlope),
@@ -264,6 +290,8 @@ DRTImageIOD::DRTImageIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -295,6 +323,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -310,12 +341,19 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -349,7 +387,16 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -369,6 +416,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -393,6 +441,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -405,11 +454,6 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     AcquisitionDate(copy.AcquisitionDate),
     AcquisitionTime(copy.AcquisitionTime),
     AcquisitionDateTime(copy.AcquisitionDateTime),
-    ReferencedImageSequence(copy.ReferencedImageSequence),
-    DerivationDescription(copy.DerivationDescription),
-    DerivationCodeSequence(copy.DerivationCodeSequence),
-    SourceImageSequence(copy.SourceImageSequence),
-    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
     ImagesInAcquisition(copy.ImagesInAcquisition),
     ImageComments(copy.ImageComments),
     QualityControlImage(copy.QualityControlImage),
@@ -422,9 +466,14 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     PresentationLUTShape(copy.PresentationLUTShape),
     IrradiationEventUID(copy.IrradiationEventUID),
     RealWorldValueMappingSequence(copy.RealWorldValueMappingSequence),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     Rows(copy.Rows),
     Columns(copy.Columns),
-    PixelData(copy.PixelData),
     PlanarConfiguration(copy.PlanarConfiguration),
     PixelAspectRatio(copy.PixelAspectRatio),
     SmallestImagePixelValue(copy.SmallestImagePixelValue),
@@ -436,6 +485,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData),
     ICCProfile(copy.ICCProfile),
+    ColorSpace(copy.ColorSpace),
+    PixelData(copy.PixelData),
     PixelDataProviderURL(copy.PixelDataProviderURL),
     PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit),
     ContrastBolusAgent(copy.ContrastBolusAgent),
@@ -513,6 +564,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     TableTopLateralPosition(copy.TableTopLateralPosition),
     IsocenterPosition(copy.IsocenterPosition),
     PatientPosition(copy.PatientPosition),
+    ExposureTime(copy.ExposureTime),
+    ExposureTimeInms(copy.ExposureTimeInms),
+    MetersetExposure(copy.MetersetExposure),
     ModalityLUTSequence(copy.ModalityLUTSequence),
     RescaleIntercept(copy.RescaleIntercept),
     RescaleSlope(copy.RescaleSlope),
@@ -536,6 +590,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -573,6 +629,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -588,12 +647,19 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -627,7 +693,16 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -647,6 +722,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -671,6 +747,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -683,11 +760,6 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         AcquisitionDate = copy.AcquisitionDate;
         AcquisitionTime = copy.AcquisitionTime;
         AcquisitionDateTime = copy.AcquisitionDateTime;
-        ReferencedImageSequence = copy.ReferencedImageSequence;
-        DerivationDescription = copy.DerivationDescription;
-        DerivationCodeSequence = copy.DerivationCodeSequence;
-        SourceImageSequence = copy.SourceImageSequence;
-        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
         ImagesInAcquisition = copy.ImagesInAcquisition;
         ImageComments = copy.ImageComments;
         QualityControlImage = copy.QualityControlImage;
@@ -700,9 +772,14 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         PresentationLUTShape = copy.PresentationLUTShape;
         IrradiationEventUID = copy.IrradiationEventUID;
         RealWorldValueMappingSequence = copy.RealWorldValueMappingSequence;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         Rows = copy.Rows;
         Columns = copy.Columns;
-        PixelData = copy.PixelData;
         PlanarConfiguration = copy.PlanarConfiguration;
         PixelAspectRatio = copy.PixelAspectRatio;
         SmallestImagePixelValue = copy.SmallestImagePixelValue;
@@ -714,6 +791,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData;
         BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData;
         ICCProfile = copy.ICCProfile;
+        ColorSpace = copy.ColorSpace;
+        PixelData = copy.PixelData;
         PixelDataProviderURL = copy.PixelDataProviderURL;
         PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit;
         ContrastBolusAgent = copy.ContrastBolusAgent;
@@ -791,6 +870,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         TableTopLateralPosition = copy.TableTopLateralPosition;
         IsocenterPosition = copy.IsocenterPosition;
         PatientPosition = copy.PatientPosition;
+        ExposureTime = copy.ExposureTime;
+        ExposureTimeInms = copy.ExposureTimeInms;
+        MetersetExposure = copy.MetersetExposure;
         ModalityLUTSequence = copy.ModalityLUTSequence;
         RescaleIntercept = copy.RescaleIntercept;
         RescaleSlope = copy.RescaleSlope;
@@ -814,6 +896,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -846,6 +930,9 @@ void DRTImageIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -861,12 +948,19 @@ void DRTImageIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -900,7 +994,16 @@ void DRTImageIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -920,6 +1023,7 @@ void DRTImageIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -944,6 +1048,7 @@ void DRTImageIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -957,11 +1062,6 @@ void DRTImageIOD::clear()
     AcquisitionDate.clear();
     AcquisitionTime.clear();
     AcquisitionDateTime.clear();
-    ReferencedImageSequence.clear();
-    DerivationDescription.clear();
-    DerivationCodeSequence.clear();
-    SourceImageSequence.clear();
-    ReferencedInstanceSequence.clear();
     ImagesInAcquisition.clear();
     ImageComments.clear();
     QualityControlImage.clear();
@@ -974,6 +1074,12 @@ void DRTImageIOD::clear()
     PresentationLUTShape.clear();
     IrradiationEventUID.clear();
     RealWorldValueMappingSequence.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SamplesPerPixel.clear();
     PhotometricInterpretation.clear();
     Rows.clear();
@@ -982,7 +1088,6 @@ void DRTImageIOD::clear()
     BitsStored.clear();
     HighBit.clear();
     PixelRepresentation.clear();
-    PixelData.clear();
     PlanarConfiguration.clear();
     PixelAspectRatio.clear();
     SmallestImagePixelValue.clear();
@@ -994,6 +1099,8 @@ void DRTImageIOD::clear()
     GreenPaletteColorLookupTableData.clear();
     BluePaletteColorLookupTableData.clear();
     ICCProfile.clear();
+    ColorSpace.clear();
+    PixelData.clear();
     PixelDataProviderURL.clear();
     PixelPaddingRangeLimit.clear();
     ContrastBolusAgent.clear();
@@ -1064,6 +1171,9 @@ void DRTImageIOD::clear()
     TableTopLateralPosition.clear();
     IsocenterPosition.clear();
     PatientPosition.clear();
+    ExposureTime.clear();
+    ExposureTimeInms.clear();
+    MetersetExposure.clear();
     ModalityLUTSequence.clear();
     RescaleIntercept.clear();
     RescaleSlope.clear();
@@ -1087,6 +1197,8 @@ void DRTImageIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -1171,6 +1283,7 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -1186,11 +1299,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule");
-        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule");
-        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule");
@@ -1204,6 +1312,14 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, IrradiationEventUID, "1-n", "3", "GeneralImageModule");
         RealWorldValueMappingSequence.read(dataset, "1-n", "3", "GeneralImageModule");
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- ImagePixelModule (M) ---
         // getAndCheckElementFromDataset(dataset, SamplesPerPixel, "1", "1", "ImagePixelModule");
         // getAndCheckElementFromDataset(dataset, PhotometricInterpretation, "1", "1", "ImagePixelModule");
@@ -1213,7 +1329,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule");
         // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule");
         // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule");
-        getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule");
@@ -1225,6 +1340,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule");
+        getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule");
+        getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule");
 
@@ -1322,6 +1439,9 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, TableTopLateralPosition, "1", "3", "RTImageModule");
         getAndCheckElementFromDataset(dataset, IsocenterPosition, "3", "3", "RTImageModule");
         getAndCheckElementFromDataset(dataset, PatientPosition, "1", "1C", "RTImageModule");
+        getAndCheckElementFromDataset(dataset, ExposureTime, "1", "3", "RTImageModule");
+        getAndCheckElementFromDataset(dataset, ExposureTimeInms, "1", "3", "RTImageModule");
+        getAndCheckElementFromDataset(dataset, MetersetExposure, "1", "3", "RTImageModule");
 
         // --- ModalityLUTModule (U) ---
         ModalityLUTSequence.read(dataset, "1-n", "1C", "ModalityLUTModule");
@@ -1356,6 +1476,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -1398,6 +1520,9 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -1413,12 +1538,19 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -1474,7 +1606,16 @@ OFCondition DRTImageIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -1511,6 +1652,7 @@ OFCondition DRTImageIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -1549,6 +1691,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1564,12 +1709,19 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1614,7 +1766,16 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1642,6 +1803,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1678,6 +1840,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1693,11 +1856,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule");
-        if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-        addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule");
-        if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-        if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-        if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule");
@@ -1711,6 +1869,17 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(IrradiationEventUID), "1-n", "3", "GeneralImageModule");
         if (result.good()) result = RealWorldValueMappingSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- ImagePixelModule (M) ---
         // addElementToDataset(result, dataset, new DcmUnsignedShort(SamplesPerPixel), "1", "1", "ImagePixelModule");
         // addElementToDataset(result, dataset, new DcmCodeString(PhotometricInterpretation), "1", "1", "ImagePixelModule");
@@ -1720,7 +1889,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule");
         // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule");
         // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule");
-        addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule");
@@ -1732,6 +1900,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule");
+        addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule");
+        addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule");
 
@@ -1831,6 +2001,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmDecimalString(TableTopLateralPosition), "1", "3", "RTImageModule");
         addElementToDataset(result, dataset, new DcmDecimalString(IsocenterPosition), "3", "3", "RTImageModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientPosition), "1", "1C", "RTImageModule");
+        addElementToDataset(result, dataset, new DcmIntegerString(ExposureTime), "1", "3", "RTImageModule");
+        addElementToDataset(result, dataset, new DcmFloatingPointDouble(ExposureTimeInms), "1", "3", "RTImageModule");
+        addElementToDataset(result, dataset, new DcmDecimalString(MetersetExposure), "1", "3", "RTImageModule");
 
         // --- ModalityLUTModule (U) ---
         if (isModalityLUTModulePresent(OFFalse /*complete*/))
@@ -1871,6 +2044,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1937,7 +2112,16 @@ OFBool DRTImageIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1981,6 +2165,18 @@ OFBool DRTImageIOD::isFrameOfReferenceModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTImageIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTImageIOD::isContrastBolusModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -2158,6 +2354,12 @@ OFCondition DRTImageIOD::getAdmittingDiagnosesDescription(OFString &value, const
 }
 
 
+OFCondition DRTImageIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -2317,6 +2519,12 @@ OFCondition DRTImageIOD::getClinicalTrialTimePointID(OFString &value, const sign
 }
 
 
+OFCondition DRTImageIOD::getColorSpace(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(ColorSpace, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getColumns(Uint16 &value, const unsigned long pos) const
 {
     return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos);
@@ -2515,6 +2723,24 @@ OFCondition DRTImageIOD::getEthnicGroup(OFString &value, const signed long pos)
 }
 
 
+OFCondition DRTImageIOD::getExposureTime(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(ExposureTime, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getExposureTime(Sint32 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmIntegerString &, ExposureTime).getSint32(value, pos);
+}
+
+
+OFCondition DRTImageIOD::getExposureTimeInms(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmFloatingPointDouble &, ExposureTimeInms).getFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getFractionNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(FractionNumber, value, pos);
@@ -2791,6 +3017,12 @@ OFCondition DRTImageIOD::getLargestImagePixelValue(Uint16 &value, const unsigned
 }
 
 
+OFCondition DRTImageIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -2839,6 +3071,48 @@ OFCondition DRTImageIOD::getManufacturerModelName(OFString &value, const signed
 }
 
 
+OFCondition DRTImageIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMetersetExposure(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MetersetExposure, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMetersetExposure(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MetersetExposure).getFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -2899,18 +3173,42 @@ OFCondition DRTImageIOD::getPatientAge(OFString &value, const signed long pos) c
 }
 
 
+OFCondition DRTImageIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTImageIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTImageIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -2923,6 +3221,12 @@ OFCondition DRTImageIOD::getPatientComments(OFString &value, const signed long p
 }
 
 
+OFCondition DRTImageIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -2983,6 +3287,12 @@ OFCondition DRTImageIOD::getPatientSpeciesDescription(OFString &value, const sig
 }
 
 
+OFCondition DRTImageIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientSupportAngle(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientSupportAngle, value, pos);
@@ -3121,6 +3431,12 @@ OFCondition DRTImageIOD::getPreferredPlaybackSequencing(Uint16 &value, const uns
 }
 
 
+OFCondition DRTImageIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPresentationLUTShape(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PresentationLUTShape, value, pos);
@@ -3496,6 +3812,12 @@ OFCondition DRTImageIOD::getSmallestImagePixelValue(Uint16 &value, const unsigne
 }
 
 
+OFCondition DRTImageIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -3580,6 +3902,24 @@ OFCondition DRTImageIOD::getStopTrim(Sint32 &value, const unsigned long pos) con
 }
 
 
+OFCondition DRTImageIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -3853,6 +4193,15 @@ OFCondition DRTImageIOD::setAdmittingDiagnosesDescription(const OFString &value,
 }
 
 
+OFCondition DRTImageIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4048,6 +4397,15 @@ OFCondition DRTImageIOD::setClinicalTrialTimePointID(const OFString &value, cons
 }
 
 
+OFCondition DRTImageIOD::setColorSpace(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = ColorSpace.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setColumns(const Uint16 value, const unsigned long pos)
 {
     return Columns.putUint16(value, pos);
@@ -4261,6 +4619,21 @@ OFCondition DRTImageIOD::setEthnicGroup(const OFString &value, const OFBool chec
 }
 
 
+OFCondition DRTImageIOD::setExposureTime(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = ExposureTime.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setExposureTimeInms(const Float64 value, const unsigned long pos)
+{
+    return ExposureTimeInms.putFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::setFractionNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
@@ -4513,6 +4886,15 @@ OFCondition DRTImageIOD::setLargestImagePixelValue(const Uint16 value, const uns
 }
 
 
+OFCondition DRTImageIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4567,6 +4949,42 @@ OFCondition DRTImageIOD::setManufacturerModelName(const OFString &value, const O
 }
 
 
+OFCondition DRTImageIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setMetersetExposure(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MetersetExposure.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4648,6 +5066,15 @@ OFCondition DRTImageIOD::setPatientAge(const OFString &value, const OFBool check
 }
 
 
+OFCondition DRTImageIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -4657,6 +5084,15 @@ OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTImageIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -4666,6 +5102,15 @@ OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTImageIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4684,6 +5129,15 @@ OFCondition DRTImageIOD::setPatientComments(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTImageIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4765,6 +5219,15 @@ OFCondition DRTImageIOD::setPatientSpeciesDescription(const OFString &value, con
 }
 
 
+OFCondition DRTImageIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientSupportAngle(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -4927,6 +5390,12 @@ OFCondition DRTImageIOD::setPreferredPlaybackSequencing(const Uint16 value, cons
 }
 
 
+OFCondition DRTImageIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTImageIOD::setPresentationLUTShape(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -5344,6 +5813,15 @@ OFCondition DRTImageIOD::setSmallestImagePixelValue(const Uint16 value, const un
 }
 
 
+OFCondition DRTImageIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -5425,6 +5903,33 @@ OFCondition DRTImageIOD::setStopTrim(const OFString &value, const OFBool check)
 }
 
 
+OFCondition DRTImageIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index 52b22af264d42b511f984b48ebfcb754ccf90520..0fd0a2cfad0734e4135efc59013960b9b502d9a4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -138,6 +159,7 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     ReferencedStructureSetSequence(),
     ReferencedDoseSequence(),
     ReferencedRTPlanSequence(),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(DCM_PrescriptionDescription),
     DoseReferenceSequence(),
     IonToleranceTableSequence(),
@@ -148,6 +170,12 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     ReviewDate(DCM_ReviewDate),
     ReviewTime(DCM_ReviewTime),
     ReviewerName(DCM_ReviewerName),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -158,6 +186,8 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -188,6 +218,9 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -203,12 +236,19 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -242,7 +282,16 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -262,6 +311,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -286,6 +336,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -303,6 +354,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence),
     ReferencedDoseSequence(copy.ReferencedDoseSequence),
     ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(copy.PrescriptionDescription),
     DoseReferenceSequence(copy.DoseReferenceSequence),
     IonToleranceTableSequence(copy.IonToleranceTableSequence),
@@ -313,6 +365,12 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     ReviewDate(copy.ReviewDate),
     ReviewTime(copy.ReviewTime),
     ReviewerName(copy.ReviewerName),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -323,6 +381,8 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -359,6 +419,9 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -374,12 +437,19 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -413,7 +483,16 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -433,6 +512,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -457,6 +537,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -474,6 +555,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence;
         ReferencedDoseSequence = copy.ReferencedDoseSequence;
         ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence;
+        FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
         PrescriptionDescription = copy.PrescriptionDescription;
         DoseReferenceSequence = copy.DoseReferenceSequence;
         IonToleranceTableSequence = copy.IonToleranceTableSequence;
@@ -484,6 +566,12 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         ReviewDate = copy.ReviewDate;
         ReviewTime = copy.ReviewTime;
         ReviewerName = copy.ReviewerName;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -494,6 +582,8 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -525,6 +615,9 @@ void DRTIonPlanIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -540,12 +633,19 @@ void DRTIonPlanIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -579,7 +679,16 @@ void DRTIonPlanIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -599,6 +708,7 @@ void DRTIonPlanIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -623,6 +733,7 @@ void DRTIonPlanIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -640,6 +751,7 @@ void DRTIonPlanIOD::clear()
     ReferencedStructureSetSequence.clear();
     ReferencedDoseSequence.clear();
     ReferencedRTPlanSequence.clear();
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear();
     PrescriptionDescription.clear();
     DoseReferenceSequence.clear();
     IonToleranceTableSequence.clear();
@@ -650,6 +762,12 @@ void DRTIonPlanIOD::clear()
     ReviewDate.clear();
     ReviewTime.clear();
     ReviewerName.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -660,6 +778,8 @@ void DRTIonPlanIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -739,6 +859,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -758,6 +879,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
         ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule");
         ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
         ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
+        getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule");
@@ -796,6 +918,14 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -807,6 +937,8 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -843,6 +975,9 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -858,12 +993,19 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -919,7 +1061,16 @@ OFCondition DRTIonPlanIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -956,6 +1107,7 @@ OFCondition DRTIonPlanIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -994,6 +1146,9 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1009,12 +1164,19 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1059,7 +1221,16 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1087,6 +1258,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1120,6 +1292,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1139,6 +1312,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
+        addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         if (isRTPrescriptionModulePresent(OFFalse /*complete*/))
@@ -1180,6 +1354,17 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1191,6 +1376,8 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1251,7 +1438,16 @@ OFBool DRTIonPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1333,6 +1529,18 @@ OFBool DRTIonPlanIOD::isApprovalModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTIonPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTIonPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1365,6 +1573,12 @@ OFCondition DRTIonPlanIOD::getAdmittingDiagnosesDescription(OFString &value, con
 }
 
 
+OFCondition DRTIonPlanIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -1491,6 +1705,12 @@ OFCondition DRTIonPlanIOD::getDeidentificationMethod(OFString &value, const sign
 }
 
 
+OFCondition DRTIonPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1503,6 +1723,12 @@ OFCondition DRTIonPlanIOD::getEthnicGroup(OFString &value, const signed long pos
 }
 
 
+OFCondition DRTIonPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(FrameOfReferenceUID, value, pos);
@@ -1575,6 +1801,12 @@ OFCondition DRTIonPlanIOD::getIssuerOfPatientID(OFString &value, const signed lo
 }
 
 
+OFCondition DRTIonPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1593,6 +1825,36 @@ OFCondition DRTIonPlanIOD::getManufacturerModelName(OFString &value, const signe
 }
 
 
+OFCondition DRTIonPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1641,18 +1903,42 @@ OFCondition DRTIonPlanIOD::getPatientAge(OFString &value, const signed long pos)
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1665,6 +1951,12 @@ OFCondition DRTIonPlanIOD::getPatientComments(OFString &value, const signed long
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1713,6 +2005,12 @@ OFCondition DRTIonPlanIOD::getPatientSpeciesDescription(OFString &value, const s
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1785,6 +2083,12 @@ OFCondition DRTIonPlanIOD::getPositionReferenceIndicator(OFString &value, const
 }
 
 
+OFCondition DRTIonPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PrescriptionDescription, value, pos);
@@ -1965,6 +2269,12 @@ OFCondition DRTIonPlanIOD::getServiceEpisodeID(OFString &value, const signed lon
 }
 
 
+OFCondition DRTIonPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1995,6 +2305,24 @@ OFCondition DRTIonPlanIOD::getStationName(OFString &value, const signed long pos
 }
 
 
+OFCondition DRTIonPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -2085,6 +2413,15 @@ OFCondition DRTIonPlanIOD::setAdmittingDiagnosesDescription(const OFString &valu
 }
 
 
+OFCondition DRTIonPlanIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2274,6 +2611,15 @@ OFCondition DRTIonPlanIOD::setDeidentificationMethod(const OFString &value, cons
 }
 
 
+OFCondition DRTIonPlanIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2292,6 +2638,12 @@ OFCondition DRTIonPlanIOD::setEthnicGroup(const OFString &value, const OFBool ch
 }
 
 
+OFCondition DRTIonPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos)
+{
+    return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
@@ -2391,6 +2743,15 @@ OFCondition DRTIonPlanIOD::setIssuerOfPatientID(const OFString &value, const OFB
 }
 
 
+OFCondition DRTIonPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2418,6 +2779,33 @@ OFCondition DRTIonPlanIOD::setManufacturerModelName(const OFString &value, const
 }
 
 
+OFCondition DRTIonPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2490,6 +2878,15 @@ OFCondition DRTIonPlanIOD::setPatientAge(const OFString &value, const OFBool che
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2499,6 +2896,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2508,6 +2914,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2526,6 +2941,15 @@ OFCondition DRTIonPlanIOD::setPatientComments(const OFString &value, const OFBoo
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2589,6 +3013,15 @@ OFCondition DRTIonPlanIOD::setPatientSpeciesDescription(const OFString &value, c
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2685,6 +3118,12 @@ OFCondition DRTIonPlanIOD::setPositionReferenceIndicator(const OFString &value,
 }
 
 
+OFCondition DRTIonPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
@@ -2946,6 +3385,15 @@ OFCondition DRTIonPlanIOD::setServiceEpisodeID(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTIonPlanIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2982,6 +3430,33 @@ OFCondition DRTIonPlanIOD::setStationName(const OFString &value, const OFBool ch
 }
 
 
+OFCondition DRTIonPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index ec5bf4d9058e8a912c24b2597c512cdf4f7b70c7..d7e794af81831f1e3d35e9107ec32f507296f454 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBeamsTreatmentRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -80,7 +90,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -119,6 +139,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -143,6 +164,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     FractionGroupSummarySequence(),
     TreatmentSummaryMeasuredDoseReferenceSequence(),
     TreatmentSummaryCalculatedDoseReferenceSequence(),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -153,6 +180,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -183,6 +212,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -198,12 +230,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -240,7 +279,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -257,6 +305,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -279,6 +328,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -303,6 +353,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     FractionGroupSummarySequence(copy.FractionGroupSummarySequence),
     TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence),
     TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -313,6 +369,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -349,6 +407,9 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -364,12 +425,19 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -406,7 +474,16 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -423,6 +500,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -445,6 +523,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -469,6 +548,12 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         FractionGroupSummarySequence = copy.FractionGroupSummarySequence;
         TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence;
         TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -479,6 +564,8 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -510,6 +597,9 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -525,12 +615,19 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -567,7 +664,16 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -584,6 +690,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -606,6 +713,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -630,6 +738,12 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     FractionGroupSummarySequence.clear();
     TreatmentSummaryMeasuredDoseReferenceSequence.clear();
     TreatmentSummaryCalculatedDoseReferenceSequence.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -640,6 +754,8 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -715,6 +831,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -768,6 +885,14 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset)
             TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -779,6 +904,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -815,6 +942,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -830,12 +960,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -899,7 +1036,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -928,6 +1074,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -966,6 +1113,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -981,12 +1131,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1039,7 +1196,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1059,6 +1225,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1088,6 +1255,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1139,6 +1307,17 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
             if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1150,6 +1329,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1219,7 +1400,16 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isPatientStudyModulePresent(const OFBool /
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1280,6 +1470,18 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isRTTreatmentSummaryRecordModulePresent(co
 }
 
 
+OFBool DRTIonBeamsTreatmentRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTIonBeamsTreatmentRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1312,6 +1514,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getAdmittingDiagnosesDescription(OFSt
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
@@ -1438,6 +1646,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getDeidentificationMethod(OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1522,6 +1736,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getIssuerOfPatientID(OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1540,6 +1760,36 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getManufacturerModelName(OFString &va
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1606,18 +1856,42 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAge(OFString &value, const
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1630,6 +1904,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientComments(OFString &value, c
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1678,6 +1958,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientSpeciesDescription(OFString
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1738,6 +2024,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPixelPaddingValue(Uint16 &value, c
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPrimaryDosimeterUnit(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PrimaryDosimeterUnit, value, pos);
@@ -1876,6 +2168,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getServiceEpisodeID(OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1906,6 +2204,24 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getStationName(OFString &value, const
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -2002,6 +2318,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setAdmittingDiagnosesDescription(cons
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2191,6 +2516,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setDeidentificationMethod(const OFStr
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2308,6 +2642,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setIssuerOfPatientID(const OFString &
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2335,6 +2678,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setManufacturerModelName(const OFStri
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2425,6 +2795,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAge(const OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2434,6 +2813,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2443,6 +2831,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2461,6 +2858,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientComments(const OFString &va
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2524,6 +2930,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientSpeciesDescription(const OF
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2602,6 +3017,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPixelPaddingValue(const Uint16 val
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPrimaryDosimeterUnit(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2791,6 +3212,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setServiceEpisodeID(const OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2827,6 +3257,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setStationName(const OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index 25a3869d1eadb3f6cce6dd496385cf98907f9ad3..23b7c28c1097069f128dfa33c5325cd1eb22968c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfPatientIDQualifiersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e79d28cb3c55a0a8a7c85a19c4c624c811a7a862..1f9714e4ffe09f5a97e0a2f45210e13a79501c26 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonRangeCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index eb40d2e48a789267bc77f5954a2b3f055ea56d4b..4a4c4676a775e2c2c138b2dca67276232dd82aec 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfServiceEpisodeIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 32d02c1ae92bd5a4c877fae545fc076aae16c805..56773c0860635d4483b6b8f46a5467bcc3f54ea9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,7 +23,11 @@ DRTIonToleranceTableSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     BeamLimitingDeviceAngleTolerance(DCM_BeamLimitingDeviceAngleTolerance),
     BeamLimitingDeviceToleranceSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    ChairHeadFramePositionTolerance(DCM_ChairHeadFramePositionTolerance),
+    FixationLightAzimuthalAngleTolerance(DCM_FixationLightAzimuthalAngleTolerance),
+    FixationLightPolarAngleTolerance(DCM_FixationLightPolarAngleTolerance),
     GantryAngleTolerance(DCM_GantryAngleTolerance),
+    HeadFixationAngleTolerance(DCM_HeadFixationAngleTolerance),
     PatientSupportAngleTolerance(DCM_PatientSupportAngleTolerance),
     SnoutPositionTolerance(DCM_SnoutPositionTolerance),
     TableTopLateralPositionTolerance(DCM_TableTopLateralPositionTolerance),
@@ -41,7 +45,11 @@ DRTIonToleranceTableSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     BeamLimitingDeviceAngleTolerance(copy.BeamLimitingDeviceAngleTolerance),
     BeamLimitingDeviceToleranceSequence(copy.BeamLimitingDeviceToleranceSequence),
+    ChairHeadFramePositionTolerance(copy.ChairHeadFramePositionTolerance),
+    FixationLightAzimuthalAngleTolerance(copy.FixationLightAzimuthalAngleTolerance),
+    FixationLightPolarAngleTolerance(copy.FixationLightPolarAngleTolerance),
     GantryAngleTolerance(copy.GantryAngleTolerance),
+    HeadFixationAngleTolerance(copy.HeadFixationAngleTolerance),
     PatientSupportAngleTolerance(copy.PatientSupportAngleTolerance),
     SnoutPositionTolerance(copy.SnoutPositionTolerance),
     TableTopLateralPositionTolerance(copy.TableTopLateralPositionTolerance),
@@ -67,7 +75,11 @@ DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::Item::operator
         EmptyDefaultItem = copy.EmptyDefaultItem;
         BeamLimitingDeviceAngleTolerance = copy.BeamLimitingDeviceAngleTolerance;
         BeamLimitingDeviceToleranceSequence = copy.BeamLimitingDeviceToleranceSequence;
+        ChairHeadFramePositionTolerance = copy.ChairHeadFramePositionTolerance;
+        FixationLightAzimuthalAngleTolerance = copy.FixationLightAzimuthalAngleTolerance;
+        FixationLightPolarAngleTolerance = copy.FixationLightPolarAngleTolerance;
         GantryAngleTolerance = copy.GantryAngleTolerance;
+        HeadFixationAngleTolerance = copy.HeadFixationAngleTolerance;
         PatientSupportAngleTolerance = copy.PatientSupportAngleTolerance;
         SnoutPositionTolerance = copy.SnoutPositionTolerance;
         TableTopLateralPositionTolerance = copy.TableTopLateralPositionTolerance;
@@ -99,6 +111,10 @@ void DRTIonToleranceTableSequence::Item::clear()
         TableTopPitchAngleTolerance.clear();
         TableTopRollAngleTolerance.clear();
         SnoutPositionTolerance.clear();
+        HeadFixationAngleTolerance.clear();
+        ChairHeadFramePositionTolerance.clear();
+        FixationLightAzimuthalAngleTolerance.clear();
+        FixationLightPolarAngleTolerance.clear();
     }
 }
 
@@ -116,7 +132,11 @@ OFBool DRTIonToleranceTableSequence::Item::isEmpty()
            TableTopLateralPositionTolerance.isEmpty() &&
            TableTopPitchAngleTolerance.isEmpty() &&
            TableTopRollAngleTolerance.isEmpty() &&
-           SnoutPositionTolerance.isEmpty();
+           SnoutPositionTolerance.isEmpty() &&
+           HeadFixationAngleTolerance.isEmpty() &&
+           ChairHeadFramePositionTolerance.isEmpty() &&
+           FixationLightAzimuthalAngleTolerance.isEmpty() &&
+           FixationLightPolarAngleTolerance.isEmpty();
 }
 
 
@@ -145,6 +165,10 @@ OFCondition DRTIonToleranceTableSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, TableTopPitchAngleTolerance, "1", "3", "IonToleranceTableSequence");
         getAndCheckElementFromDataset(item, TableTopRollAngleTolerance, "1", "3", "IonToleranceTableSequence");
         getAndCheckElementFromDataset(item, SnoutPositionTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, HeadFixationAngleTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, ChairHeadFramePositionTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, FixationLightAzimuthalAngleTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, FixationLightPolarAngleTolerance, "1", "3", "IonToleranceTableSequence");
         result = EC_Normal;
     }
     return result;
@@ -169,6 +193,10 @@ OFCondition DRTIonToleranceTableSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngleTolerance), "1", "3", "IonToleranceTableSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngleTolerance), "1", "3", "IonToleranceTableSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(SnoutPositionTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(HeadFixationAngleTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePositionTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(FixationLightAzimuthalAngleTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(FixationLightPolarAngleTolerance), "1", "3", "IonToleranceTableSequence");
     }
     return result;
 }
@@ -192,6 +220,60 @@ OFCondition DRTIonToleranceTableSequence::Item::getBeamLimitingDeviceAngleTolera
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ChairHeadFramePositionTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, ChairHeadFramePositionTolerance).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationLightAzimuthalAngleTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, FixationLightAzimuthalAngleTolerance).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationLightPolarAngleTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, FixationLightPolarAngleTolerance).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -210,6 +292,24 @@ OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(Float64
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(HeadFixationAngleTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, HeadFixationAngleTolerance).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::getPatientSupportAngleTolerance(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -349,6 +449,45 @@ OFCondition DRTIonToleranceTableSequence::Item::setBeamLimitingDeviceAngleTolera
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::setChairHeadFramePositionTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ChairHeadFramePositionTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationLightAzimuthalAngleTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationLightPolarAngleTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -362,6 +501,19 @@ OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OF
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::setHeadFixationAngleTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = HeadFixationAngleTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::setPatientSupportAngleTolerance(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 0501b4b9fe1104619dca8bd5f62c53638fb0129f..f487b51734099239654a63aabe1a3ebf2761d993 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 66ec2a8718297c2ecbd2786cac657810d3576760..7ce23d48cfce607b7fe69af72d4f0f329b0663e6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c6ee742f1bc40cf8a5c62295275acbc36237f4a1..887c5840cdbf2cb393eaebc2b49393d117122ad3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 77f8ba1e98e66990fc499569fc8854308d664db3..d9d8606f2f7092cc76ac208223fdc7b6bf73664d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6d236c56e0af61b81f5dc3b36ec4efb5a065e81f..e7622018d8d4710ca6c3b3a6d46f4266d60f8839 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ddbda9555ab4643b3aeac3e7a580a1ee9664c649..8ede6d46e4908a1e23c3ef8b716cfa1debf19244 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 369b0c6ee65cfb510103d2dda497a2eac09b2bd0..50097b6ec1f8424e740f0f516ee9dca4951ae0be 100644 (file)
@@ -6,9 +6,8 @@
  *
  *  Source file for class DRTModifiedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
- *  Last modified on 2016-02-05 by Riesmeier
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -68,26 +67,24 @@ OFBool DRTModifiedAttributesSequence::Item::isValid() const
 }
 
 
-OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem & /*item*/)
+OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        /* manual comment: nothing to do */
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem & /*item*/)
+OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        /* manual comment: nothing to do */
         result = EC_Normal;
     }
     return result;
index bac8e3d66b7d28d5a9a4444d8e5c3131593d9b17..31209c588cc1fb811f841833f856f717b159ed89 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index af627b045fbef0d1778f242f19973e7623921b91..5484cea6cad2ce0796fef200c8ec13ff3bd494b6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTModalityLUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -93,10 +93,10 @@ OFCondition DRTModalityLUTSequence::Item::read(DcmItem &item)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1C", "ModalityLUTSequence");
+        getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1", "ModalityLUTSequence");
         getAndCheckElementFromDataset(item, LUTExplanation, "1", "3", "ModalityLUTSequence");
-        getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1C", "ModalityLUTSequence");
-        getAndCheckElementFromDataset(item, LUTData, "1-n", "1C", "ModalityLUTSequence");
+        getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1", "ModalityLUTSequence");
+        getAndCheckElementFromDataset(item, LUTData, "1-n", "1", "ModalityLUTSequence");
         result = EC_Normal;
     }
     return result;
@@ -109,10 +109,10 @@ OFCondition DRTModalityLUTSequence::Item::write(DcmItem &item)
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1C", "ModalityLUTSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1", "ModalityLUTSequence");
         addElementToDataset(result, item, new DcmLongString(LUTExplanation), "1", "3", "ModalityLUTSequence");
-        addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1C", "ModalityLUTSequence");
-        addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1C", "ModalityLUTSequence");
+        addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1", "ModalityLUTSequence");
+        addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1", "ModalityLUTSequence");
     }
     return result;
 }
index b48bfaa7e9bcde14c7f620f7cfa857280d89a69a..7f94570afe65271c9ad05efc4b84b3ac545ee11f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMACParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtmris.cc b/dcmrt/libsrc/drtmris.cc
new file mode 100644 (file)
index 0000000..8a82778
--- /dev/null
@@ -0,0 +1,602 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTMappingResourceIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtmris.h"
+
+
+// --- item class ---
+
+DRTMappingResourceIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID)
+{
+}
+
+
+DRTMappingResourceIdentificationSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID)
+{
+}
+
+
+DRTMappingResourceIdentificationSequence::Item::~Item()
+{
+}
+
+
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
+    }
+    return *this;
+}
+
+
+void DRTMappingResourceIdentificationSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
+    }
+}
+
+
+OFBool DRTMappingResourceIdentificationSequence::Item::isEmpty()
+{
+    return MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty();
+}
+
+
+OFBool DRTMappingResourceIdentificationSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1", "MappingResourceIdentificationSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MappingResourceIdentificationSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MappingResourceIdentificationSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "MappingResourceIdentificationSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MappingResourceIdentificationSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MappingResourceIdentificationSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTMappingResourceIdentificationSequence &DRTMappingResourceIdentificationSequence::operator=(const DRTMappingResourceIdentificationSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTMappingResourceIdentificationSequence::~DRTMappingResourceIdentificationSequence()
+{
+    clear();
+}
+
+
+void DRTMappingResourceIdentificationSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTMappingResourceIdentificationSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTMappingResourceIdentificationSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTMappingResourceIdentificationSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::read(DcmItem &dataset,
+                                                           const OFString &card,
+                                                           const OFString &type,
+                                                           const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_MappingResourceIdentificationSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_MappingResourceIdentificationSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::write(DcmItem &dataset,
+                                                            const OFString &card,
+                                                            const OFString &type,
+                                                            const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_MappingResourceIdentificationSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 8879fa6dc9e035486abca792e57d5fa73b3ce5d3..37b1a17781370d66c55ac7251d673daba8cf14f9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMotionSynchronizationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b995faa89741c023319303d567ae8b9d38fdc9f3..bab34211b83a3ab9721ed3ac5c73b39776cf439a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMeasurementUnitsCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::Item::op
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTMeasurementUnitsCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTMeasurementUnitsCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MeasurementUnitsCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "MeasurementUnitsCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MeasurementUnitsCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "MeasurementUnitsCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResource(OFString &
 }
 
 
+OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResource(const OFSt
 }
 
 
+OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 0685b2ffe3a5478638612b79bc24a89f6c5a6f7a..53c30a93a8aad7e3b908f797025a5f9da436410e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOriginalAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 43e4ce2f3f7d7de90f31f5c5072bd20f93ed8544..661c183a875697a8283bb6305ad306b46a3ea96b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOperatorIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a47bd1ec1859ac9fe104a250e212feb7580eb1ef..bd2126d02e0b549e1284e6e75280eb5bdf7e0ece 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOtherPatientIDsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 81ccc2e006bd1c19a2b01ca394683bd6f1c42025..72ef9d76de625ed0d4a03598e5eb7b508d5b1838 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOverrideSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,6 +21,7 @@
 
 DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    OperatorIdentificationSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     OperatorsName(DCM_OperatorsName),
     OverrideParameterPointer(DCM_OverrideParameterPointer),
     OverrideReason(DCM_OverrideReason),
@@ -32,6 +33,7 @@ DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem)
 
 DRTOverrideSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     OperatorsName(copy.OperatorsName),
     OverrideParameterPointer(copy.OverrideParameterPointer),
     OverrideReason(copy.OverrideReason),
@@ -51,6 +53,7 @@ DRTOverrideSequence::Item &DRTOverrideSequence::Item::operator=(const Item &copy
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         OperatorsName = copy.OperatorsName;
         OverrideParameterPointer = copy.OverrideParameterPointer;
         OverrideReason = copy.OverrideReason;
@@ -70,6 +73,7 @@ void DRTOverrideSequence::Item::clear()
         OverrideParameterPointer.clear();
         ParameterItemIndex.clear();
         OperatorsName.clear();
+        OperatorIdentificationSequence.clear();
         OverrideReason.clear();
     }
 }
@@ -81,6 +85,7 @@ OFBool DRTOverrideSequence::Item::isEmpty()
            OverrideParameterPointer.isEmpty() &&
            ParameterItemIndex.isEmpty() &&
            OperatorsName.isEmpty() &&
+           OperatorIdentificationSequence.isEmpty() &&
            OverrideReason.isEmpty();
 }
 
@@ -102,6 +107,7 @@ OFCondition DRTOverrideSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, OverrideParameterPointer, "1", "1", "OverrideSequence");
         getAndCheckElementFromDataset(item, ParameterItemIndex, "1", "1", "OverrideSequence");
         getAndCheckElementFromDataset(item, OperatorsName, "1-n", "2", "OverrideSequence");
+        OperatorIdentificationSequence.read(item, "1-n", "3", "OverrideSequence");
         getAndCheckElementFromDataset(item, OverrideReason, "1", "3", "OverrideSequence");
         result = EC_Normal;
     }
@@ -119,6 +125,7 @@ OFCondition DRTOverrideSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmAttributeTag(OverrideParameterPointer), "1", "1", "OverrideSequence");
         addElementToDataset(result, item, new DcmIntegerString(ParameterItemIndex), "1", "1", "OverrideSequence");
         addElementToDataset(result, item, new DcmPersonName(OperatorsName), "1-n", "2", "OverrideSequence");
+        if (result.good()) result = OperatorIdentificationSequence.write(item, "1-n", "3", "OverrideSequence");
         addElementToDataset(result, item, new DcmShortText(OverrideReason), "1", "3", "OverrideSequence");
     }
     return result;
index 2f410328f53168edcd0431d47cfc9aa4d78ae893..0f23ab317806d7612d90d06a149a406d271067d2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientBreedCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPatientBreedCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPatientBreedCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::Item::operator=(
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPatientBreedCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPatientBreedCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientBreedCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientBreedCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientBreedCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientBreedCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPatientBreedCodeSequence::Item::getMappingResource(OFString &valu
 }
 
 
+OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPatientBreedCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index d210544826ed544190da55d3fd9cfdb5814e5234..1ee16ccceaf85bc8c67f2f60d0539c0a22f8e3c5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::Item::operator=(const
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTProcedureCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTProcedureCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTProcedureCodeSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTProcedureCodeSequence::Item::setMappingResource(const OFString &v
 }
 
 
+OFCondition DRTProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index b95cebda7adcf25359e65c3e4a950136b87578d5..f7fac9286d4899c1ac40dd3e3d8670724a66408d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTProtocolContextSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0238804ba7c49d83b6c417c57f1c114560ad6c05..576b97f6f7ce0362dd3725d104c4b467454a4461 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPrivateDataElementCharacteristicsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,6 +25,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const OFBool emptyDefau
     DeidentificationActionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     NonidentifyingPrivateElements(DCM_NonidentifyingPrivateElements),
     PrivateCreatorReference(DCM_PrivateCreatorReference),
+    PrivateDataElementDefinitionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     PrivateGroupReference(DCM_PrivateGroupReference)
 {
 }
@@ -36,6 +37,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const Item &copy)
     DeidentificationActionSequence(copy.DeidentificationActionSequence),
     NonidentifyingPrivateElements(copy.NonidentifyingPrivateElements),
     PrivateCreatorReference(copy.PrivateCreatorReference),
+    PrivateDataElementDefinitionSequence(copy.PrivateDataElementDefinitionSequence),
     PrivateGroupReference(copy.PrivateGroupReference)
 {
 }
@@ -55,6 +57,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharact
         DeidentificationActionSequence = copy.DeidentificationActionSequence;
         NonidentifyingPrivateElements = copy.NonidentifyingPrivateElements;
         PrivateCreatorReference = copy.PrivateCreatorReference;
+        PrivateDataElementDefinitionSequence = copy.PrivateDataElementDefinitionSequence;
         PrivateGroupReference = copy.PrivateGroupReference;
     }
     return *this;
@@ -68,6 +71,7 @@ void DRTPrivateDataElementCharacteristicsSequence::Item::clear()
         /* clear all DICOM attributes */
         PrivateGroupReference.clear();
         PrivateCreatorReference.clear();
+        PrivateDataElementDefinitionSequence.clear();
         BlockIdentifyingInformationStatus.clear();
         NonidentifyingPrivateElements.clear();
         DeidentificationActionSequence.clear();
@@ -79,6 +83,7 @@ OFBool DRTPrivateDataElementCharacteristicsSequence::Item::isEmpty()
 {
     return PrivateGroupReference.isEmpty() &&
            PrivateCreatorReference.isEmpty() &&
+           PrivateDataElementDefinitionSequence.isEmpty() &&
            BlockIdentifyingInformationStatus.isEmpty() &&
            NonidentifyingPrivateElements.isEmpty() &&
            DeidentificationActionSequence.isEmpty();
@@ -100,6 +105,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::read(DcmItem &it
         clear();
         getAndCheckElementFromDataset(item, PrivateGroupReference, "1", "1", "PrivateDataElementCharacteristicsSequence");
         getAndCheckElementFromDataset(item, PrivateCreatorReference, "1", "1", "PrivateDataElementCharacteristicsSequence");
+        PrivateDataElementDefinitionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
         getAndCheckElementFromDataset(item, BlockIdentifyingInformationStatus, "1", "1", "PrivateDataElementCharacteristicsSequence");
         getAndCheckElementFromDataset(item, NonidentifyingPrivateElements, "1-n", "1C", "PrivateDataElementCharacteristicsSequence");
         DeidentificationActionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
@@ -117,6 +123,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::write(DcmItem &i
         result = EC_Normal;
         addElementToDataset(result, item, new DcmUnsignedShort(PrivateGroupReference), "1", "1", "PrivateDataElementCharacteristicsSequence");
         addElementToDataset(result, item, new DcmLongString(PrivateCreatorReference), "1", "1", "PrivateDataElementCharacteristicsSequence");
+        if (result.good()) result = PrivateDataElementDefinitionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
         addElementToDataset(result, item, new DcmCodeString(BlockIdentifyingInformationStatus), "1", "1", "PrivateDataElementCharacteristicsSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(NonidentifyingPrivateElements), "1-n", "1C", "PrivateDataElementCharacteristicsSequence");
         if (result.good()) result = DeidentificationActionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
diff --git a/dcmrt/libsrc/drtpdeds.cc b/dcmrt/libsrc/drtpdeds.cc
new file mode 100644 (file)
index 0000000..927ab5f
--- /dev/null
@@ -0,0 +1,764 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTPrivateDataElementDefinitionSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtpdeds.h"
+
+
+// --- item class ---
+
+DRTPrivateDataElementDefinitionSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    PrivateDataElement(DCM_PrivateDataElement),
+    PrivateDataElementDescription(DCM_PrivateDataElementDescription),
+    PrivateDataElementEncoding(DCM_PrivateDataElementEncoding),
+    PrivateDataElementKeyword(DCM_PrivateDataElementKeyword),
+    PrivateDataElementName(DCM_PrivateDataElementName),
+    PrivateDataElementNumberOfItems(DCM_PrivateDataElementNumberOfItems),
+    PrivateDataElementValueMultiplicity(DCM_PrivateDataElementValueMultiplicity),
+    PrivateDataElementValueRepresentation(DCM_PrivateDataElementValueRepresentation),
+    RetrieveURI(DCM_RetrieveURI)
+{
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    PrivateDataElement(copy.PrivateDataElement),
+    PrivateDataElementDescription(copy.PrivateDataElementDescription),
+    PrivateDataElementEncoding(copy.PrivateDataElementEncoding),
+    PrivateDataElementKeyword(copy.PrivateDataElementKeyword),
+    PrivateDataElementName(copy.PrivateDataElementName),
+    PrivateDataElementNumberOfItems(copy.PrivateDataElementNumberOfItems),
+    PrivateDataElementValueMultiplicity(copy.PrivateDataElementValueMultiplicity),
+    PrivateDataElementValueRepresentation(copy.PrivateDataElementValueRepresentation),
+    RetrieveURI(copy.RetrieveURI)
+{
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item::~Item()
+{
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        PrivateDataElement = copy.PrivateDataElement;
+        PrivateDataElementDescription = copy.PrivateDataElementDescription;
+        PrivateDataElementEncoding = copy.PrivateDataElementEncoding;
+        PrivateDataElementKeyword = copy.PrivateDataElementKeyword;
+        PrivateDataElementName = copy.PrivateDataElementName;
+        PrivateDataElementNumberOfItems = copy.PrivateDataElementNumberOfItems;
+        PrivateDataElementValueMultiplicity = copy.PrivateDataElementValueMultiplicity;
+        PrivateDataElementValueRepresentation = copy.PrivateDataElementValueRepresentation;
+        RetrieveURI = copy.RetrieveURI;
+    }
+    return *this;
+}
+
+
+void DRTPrivateDataElementDefinitionSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        PrivateDataElement.clear();
+        PrivateDataElementValueMultiplicity.clear();
+        PrivateDataElementValueRepresentation.clear();
+        PrivateDataElementNumberOfItems.clear();
+        PrivateDataElementKeyword.clear();
+        PrivateDataElementName.clear();
+        PrivateDataElementDescription.clear();
+        PrivateDataElementEncoding.clear();
+        RetrieveURI.clear();
+    }
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::Item::isEmpty()
+{
+    return PrivateDataElement.isEmpty() &&
+           PrivateDataElementValueMultiplicity.isEmpty() &&
+           PrivateDataElementValueRepresentation.isEmpty() &&
+           PrivateDataElementNumberOfItems.isEmpty() &&
+           PrivateDataElementKeyword.isEmpty() &&
+           PrivateDataElementName.isEmpty() &&
+           PrivateDataElementDescription.isEmpty() &&
+           PrivateDataElementEncoding.isEmpty() &&
+           RetrieveURI.isEmpty();
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, PrivateDataElement, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementValueMultiplicity, "1-3", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementValueRepresentation, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementNumberOfItems, "1-2", "1C", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementKeyword, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementName, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementDescription, "1", "3", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementEncoding, "1", "3", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, RetrieveURI, "1", "3", "PrivateDataElementDefinitionSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmUnsignedShort(PrivateDataElement), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementValueMultiplicity), "1-3", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmCodeString(PrivateDataElementValueRepresentation), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementNumberOfItems), "1-2", "1C", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementKeyword), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementName), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementDescription), "1", "3", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementEncoding), "1", "3", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(RetrieveURI), "1", "3", "PrivateDataElementDefinitionSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElement(Uint16 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedShort &, PrivateDataElement).getUint16(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementDescription(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementDescription, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementEncoding(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementEncoding, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementKeyword(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementKeyword, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementName, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedLong &, PrivateDataElementNumberOfItems).getUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedLong &, PrivateDataElementValueMultiplicity).getUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueRepresentation(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementValueRepresentation, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getRetrieveURI(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(RetrieveURI, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElement(const Uint16 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return PrivateDataElement.putUint16(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementDescription.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementEncoding(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementEncoding.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementKeyword(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementKeyword.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return PrivateDataElementNumberOfItems.putUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return PrivateDataElementValueMultiplicity.putUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementValueRepresentation.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setRetrieveURI(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = RetrieveURI.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTPrivateDataElementDefinitionSequence &DRTPrivateDataElementDefinitionSequence::operator=(const DRTPrivateDataElementDefinitionSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::~DRTPrivateDataElementDefinitionSequence()
+{
+    clear();
+}
+
+
+void DRTPrivateDataElementDefinitionSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTPrivateDataElementDefinitionSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::read(DcmItem &dataset,
+                                                          const OFString &card,
+                                                          const OFString &type,
+                                                          const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_PrivateDataElementDefinitionSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_PrivateDataElementDefinitionSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::write(DcmItem &dataset,
+                                                           const OFString &card,
+                                                           const OFString &type,
+                                                           const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_PrivateDataElementDefinitionSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 0db5bd3dafa6e58730e0bab96e434c3e8360c4e4..4c3a6c41bbf06156194bd6b6b2a50c33c1c9996d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPrimaryFluenceModeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 77b1ad8a3d5179fa8376e87a2fc738f2ce875569..fbb7efe5ee8c7a00788cb5768a4d32c695aad30d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPersonIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPersonIdentificationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PersonIdentificationCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PersonIdentificationCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PersonIdentificationCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PersonIdentificationCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResource(OFStri
 }
 
 
+OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResource(const
 }
 
 
+OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 63968f1dd7081732ac4a590e8f37ef0d2bdfe0e7..0f05bf886092cad3f6e3b4bc23df5aaa9d6269d5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTPlanIOD::DRTPlanIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTPlanIOD::DRTPlanIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTPlanIOD::DRTPlanIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTPlanIOD::DRTPlanIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTPlanIOD::DRTPlanIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -138,6 +159,7 @@ DRTPlanIOD::DRTPlanIOD()
     ReferencedStructureSetSequence(),
     ReferencedDoseSequence(),
     ReferencedRTPlanSequence(),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(DCM_PrescriptionDescription),
     DoseReferenceSequence(),
     ToleranceTableSequence(),
@@ -153,6 +175,12 @@ DRTPlanIOD::DRTPlanIOD()
     ReviewDate(DCM_ReviewDate),
     ReviewTime(DCM_ReviewTime),
     ReviewerName(DCM_ReviewerName),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -163,6 +191,8 @@ DRTPlanIOD::DRTPlanIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -193,6 +223,9 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -208,12 +241,19 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -247,7 +287,16 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -267,6 +316,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -291,6 +341,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -308,6 +359,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence),
     ReferencedDoseSequence(copy.ReferencedDoseSequence),
     ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(copy.PrescriptionDescription),
     DoseReferenceSequence(copy.DoseReferenceSequence),
     ToleranceTableSequence(copy.ToleranceTableSequence),
@@ -323,6 +375,12 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     ReviewDate(copy.ReviewDate),
     ReviewTime(copy.ReviewTime),
     ReviewerName(copy.ReviewerName),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -333,6 +391,8 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -369,6 +429,9 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -384,12 +447,19 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -423,7 +493,16 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -443,6 +522,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -467,6 +547,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -484,6 +565,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence;
         ReferencedDoseSequence = copy.ReferencedDoseSequence;
         ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence;
+        FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
         PrescriptionDescription = copy.PrescriptionDescription;
         DoseReferenceSequence = copy.DoseReferenceSequence;
         ToleranceTableSequence = copy.ToleranceTableSequence;
@@ -499,6 +581,12 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         ReviewDate = copy.ReviewDate;
         ReviewTime = copy.ReviewTime;
         ReviewerName = copy.ReviewerName;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -509,6 +597,8 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -540,6 +630,9 @@ void DRTPlanIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -555,12 +648,19 @@ void DRTPlanIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -594,7 +694,16 @@ void DRTPlanIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -614,6 +723,7 @@ void DRTPlanIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -638,6 +748,7 @@ void DRTPlanIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -655,6 +766,7 @@ void DRTPlanIOD::clear()
     ReferencedStructureSetSequence.clear();
     ReferencedDoseSequence.clear();
     ReferencedRTPlanSequence.clear();
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear();
     PrescriptionDescription.clear();
     DoseReferenceSequence.clear();
     ToleranceTableSequence.clear();
@@ -670,6 +782,12 @@ void DRTPlanIOD::clear()
     ReviewDate.clear();
     ReviewTime.clear();
     ReviewerName.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -680,6 +798,8 @@ void DRTPlanIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -763,6 +883,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -782,6 +903,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
         ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule");
         ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
         ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
+        getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule");
@@ -831,6 +953,14 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -842,6 +972,8 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -878,6 +1010,9 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -893,12 +1028,19 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -954,7 +1096,16 @@ OFCondition DRTPlanIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -991,6 +1142,7 @@ OFCondition DRTPlanIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -1029,6 +1181,9 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1044,12 +1199,19 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1094,7 +1256,16 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1122,6 +1293,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1158,6 +1330,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1177,6 +1350,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
+        addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         if (isRTPrescriptionModulePresent(OFFalse /*complete*/))
@@ -1228,6 +1402,17 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1239,6 +1424,8 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1299,7 +1486,16 @@ OFBool DRTPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1416,6 +1612,18 @@ OFBool DRTPlanIOD::isApprovalModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1448,6 +1656,12 @@ OFCondition DRTPlanIOD::getAdmittingDiagnosesDescription(OFString &value, const
 }
 
 
+OFCondition DRTPlanIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -1586,6 +1800,12 @@ OFCondition DRTPlanIOD::getDeidentificationMethod(OFString &value, const signed
 }
 
 
+OFCondition DRTPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1598,6 +1818,12 @@ OFCondition DRTPlanIOD::getEthnicGroup(OFString &value, const signed long pos) c
 }
 
 
+OFCondition DRTPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(FrameOfReferenceUID, value, pos);
@@ -1670,6 +1896,12 @@ OFCondition DRTPlanIOD::getIssuerOfPatientID(OFString &value, const signed long
 }
 
 
+OFCondition DRTPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1688,6 +1920,36 @@ OFCondition DRTPlanIOD::getManufacturerModelName(OFString &value, const signed l
 }
 
 
+OFCondition DRTPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1736,18 +1998,42 @@ OFCondition DRTPlanIOD::getPatientAge(OFString &value, const signed long pos) co
 }
 
 
+OFCondition DRTPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1760,6 +2046,12 @@ OFCondition DRTPlanIOD::getPatientComments(OFString &value, const signed long po
 }
 
 
+OFCondition DRTPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1808,6 +2100,12 @@ OFCondition DRTPlanIOD::getPatientSpeciesDescription(OFString &value, const sign
 }
 
 
+OFCondition DRTPlanIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1880,6 +2178,12 @@ OFCondition DRTPlanIOD::getPositionReferenceIndicator(OFString &value, const sig
 }
 
 
+OFCondition DRTPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PrescriptionDescription, value, pos);
@@ -2060,6 +2364,12 @@ OFCondition DRTPlanIOD::getServiceEpisodeID(OFString &value, const signed long p
 }
 
 
+OFCondition DRTPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -2090,6 +2400,24 @@ OFCondition DRTPlanIOD::getStationName(OFString &value, const signed long pos) c
 }
 
 
+OFCondition DRTPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -2180,6 +2508,15 @@ OFCondition DRTPlanIOD::setAdmittingDiagnosesDescription(const OFString &value,
 }
 
 
+OFCondition DRTPlanIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2387,6 +2724,15 @@ OFCondition DRTPlanIOD::setDeidentificationMethod(const OFString &value, const O
 }
 
 
+OFCondition DRTPlanIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2405,6 +2751,12 @@ OFCondition DRTPlanIOD::setEthnicGroup(const OFString &value, const OFBool check
 }
 
 
+OFCondition DRTPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos)
+{
+    return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
@@ -2504,6 +2856,15 @@ OFCondition DRTPlanIOD::setIssuerOfPatientID(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2531,6 +2892,33 @@ OFCondition DRTPlanIOD::setManufacturerModelName(const OFString &value, const OF
 }
 
 
+OFCondition DRTPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2603,6 +2991,15 @@ OFCondition DRTPlanIOD::setPatientAge(const OFString &value, const OFBool check)
 }
 
 
+OFCondition DRTPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2612,6 +3009,15 @@ OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2621,6 +3027,15 @@ OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2639,6 +3054,15 @@ OFCondition DRTPlanIOD::setPatientComments(const OFString &value, const OFBool c
 }
 
 
+OFCondition DRTPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2702,6 +3126,15 @@ OFCondition DRTPlanIOD::setPatientSpeciesDescription(const OFString &value, cons
 }
 
 
+OFCondition DRTPlanIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2798,6 +3231,12 @@ OFCondition DRTPlanIOD::setPositionReferenceIndicator(const OFString &value, con
 }
 
 
+OFCondition DRTPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
@@ -3059,6 +3498,15 @@ OFCondition DRTPlanIOD::setServiceEpisodeID(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -3095,6 +3543,33 @@ OFCondition DRTPlanIOD::setStationName(const OFString &value, const OFBool check
 }
 
 
+OFCondition DRTPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index 7543d603d36efadeb4e4de5103f072839ef78e00..8bcc50df5ba3bd84f3b638490417ba1df438d78e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPurposeOfReferenceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPurposeOfReferenceCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPurposeOfReferenceCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PurposeOfReferenceCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PurposeOfReferenceCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PurposeOfReferenceCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PurposeOfReferenceCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResource(const OF
 }
 
 
+OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index baa1c80062da8a8ab9c884d118a2aa69411c25cb..c05a9928ecc5ab4a77111ff52666a98e5925dece 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPhysiciansOfRecordIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9180bdd7d4d1b19a19c9c3662f137e5258af0456..cfdff50349ebf0dbcaf82df82371713f228f62c4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPerformedProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
@@ -56,6 +57,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     ProtocolContextSequence(copy.ProtocolContextSequence),
     URNCodeValue(copy.URNCodeValue)
@@ -86,6 +88,7 @@ DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         ProtocolContextSequence = copy.ProtocolContextSequence;
         URNCodeValue = copy.URNCodeValue;
@@ -110,6 +113,7 @@ void DRTPerformedProtocolCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -132,6 +136,7 @@ OFBool DRTPerformedProtocolCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -164,6 +169,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PerformedProtocolCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PerformedProtocolCodeSequence");
@@ -192,6 +198,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PerformedProtocolCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PerformedProtocolCodeSequence");
@@ -310,6 +317,15 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -484,6 +500,19 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index bb30d25b81bfcd233e56566f9487b411454bcc05..cfb961b14a90f39de596dac91cd73d5731a7a024 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPhysiciansReadingStudyIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8ea54802e330e2e035308ae5fca6b8dc801daed3..7606bc86f4b9c5948028d8bac05aea9f0267033a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientSpeciesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::Item::operat
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPatientSpeciesCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPatientSpeciesCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSpeciesCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSpeciesCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSpeciesCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSpeciesCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResource(OFString &va
 }
 
 
+OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResource(const OFStri
 }
 
 
+OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index d35b732af718c817700e742a5980f8b883e4cef5..1643e8431dd8b0151711e4fe6dce134e5e459bd4 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientSizeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPatientSizeCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPatientSizeCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::Item::operator=(co
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPatientSizeCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPatientSizeCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSizeCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSizeCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSizeCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSizeCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPatientSizeCodeSequence::Item::getMappingResource(OFString &value
 }
 
 
+OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPatientSizeCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index d33128f2f61354b640d3ece7ed261897a6dd972d..20b7461aedd81ba737a9d5c69e6746694497460d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e036f8202e0fbdecfdbee398ad058a1478b3f698..e36717f34b84a56af9e4021621477eef6f09e659 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPredecessorStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 11689b3f67ba320c3c789e2f4e92b023e91d9dfb..27316d1a926ff63021516b8405ee1d096e5d29c0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPlannedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2f35e338855ed56d8c5616a676d6f7318b22c39e..3a3696aceee6ae5cb9a1e72ae065c32e48658046 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTQuantityDefinitionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 5f9a1e70181014961e2480b821bd4b2777d2c70f..7fef16c62842213d25f6e255b6d7bb2be6e74eb6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRequestAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 361f0c570efde4eb6a8b93d64177fbe402811ffd..a5fd70087a45bf6184ad879d9817241995d2a8d5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 58051ea31e1ea97b0f8dd1b7b0d25e19220ee550..479b65b9f721facb18aaa8cb33bf82dbe1ff22c5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 53254281b05c3c4a9fb63275cb4155e931e946f9..853184567fdd204e77aeb199b515203af064d115 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index aae8b6ad395ddd634b7d03bf07362a84224bcfe5..6fb87623011c8f22f535c64e124ffef1d0539a12 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBolusSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 306e642ea8defab4a8c97bd4046e4f3faf9e5f22..889c92e1da5d17a692a12b936ca6b1da93581c04 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBolusSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3b04a4c0bb74ef1130bf32e8789db9c17c59886a..e139bcbd411120f3b3e1245d0bdddddf8e7e4bff 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 67a0c564884ab2c736555768532a8b20d1ba5f23..1b34d0725f5946738ee855fa8d3661ea4a2bd569 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBeamSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 54bc29eee85e9d84dc322ff9c261c13cfad82b1c..cad82eafcb91e06f64acb531756d5832f46a3b37 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    AlternateBeamDose(DCM_AlternateBeamDose),
+    AlternateBeamDoseType(DCM_AlternateBeamDoseType),
     BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit),
     BeamDose(DCM_BeamDose),
     BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint),
+    BeamDoseType(DCM_BeamDoseType),
     BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamMeterset(DCM_BeamMeterset),
     ReferencedBeamNumber(DCM_ReferencedBeamNumber)
@@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBo
 
 DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    AlternateBeamDose(copy.AlternateBeamDose),
+    AlternateBeamDoseType(copy.AlternateBeamDoseType),
     BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit),
     BeamDose(copy.BeamDose),
     BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint),
+    BeamDoseType(copy.BeamDoseType),
     BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence),
     BeamMeterset(copy.BeamMeterset),
     ReferencedBeamNumber(copy.ReferencedBeamNumber)
@@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBe
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        AlternateBeamDose = copy.AlternateBeamDose;
+        AlternateBeamDoseType = copy.AlternateBeamDoseType;
         BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit;
         BeamDose = copy.BeamDose;
         BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint;
+        BeamDoseType = copy.BeamDoseType;
         BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence;
         BeamMeterset = copy.BeamMeterset;
         ReferencedBeamNumber = copy.ReferencedBeamNumber;
@@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::clear()
         ReferencedBeamNumber.clear();
         BeamDoseSpecificationPoint.clear();
         BeamDose.clear();
+        BeamDoseType.clear();
+        AlternateBeamDose.clear();
+        AlternateBeamDoseType.clear();
         BeamDoseVerificationControlPointSequence.clear();
         BeamMeterset.clear();
         BeamDeliveryDurationLimit.clear();
@@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::isEmpty(
     return ReferencedBeamNumber.isEmpty() &&
            BeamDoseSpecificationPoint.isEmpty() &&
            BeamDose.isEmpty() &&
+           BeamDoseType.isEmpty() &&
+           AlternateBeamDose.isEmpty() &&
+           AlternateBeamDoseType.isEmpty() &&
            BeamDoseVerificationControlPointSequence.isEmpty() &&
            BeamMeterset.isEmpty() &&
            BeamDeliveryDurationLimit.isEmpty();
@@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::rea
         getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence");
         BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence");
@@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri
         addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence");
         if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence");
@@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDose, value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(BeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamMeterset(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDose.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::set
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = BeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamMeterset(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index e2b26616ff74e7aad878f38765c61e8eb2ca9cc4..3fac5d6915182ec45ef7f19fe85c229a75588d25 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBeamSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    AlternateBeamDose(DCM_AlternateBeamDose),
+    AlternateBeamDoseType(DCM_AlternateBeamDoseType),
     BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit),
     BeamDose(DCM_BeamDose),
     BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint),
+    BeamDoseType(DCM_BeamDoseType),
     BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamMeterset(DCM_BeamMeterset),
     ReferencedBeamNumber(DCM_ReferencedBeamNumber)
@@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool empty
 
 DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    AlternateBeamDose(copy.AlternateBeamDose),
+    AlternateBeamDoseType(copy.AlternateBeamDoseType),
     BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit),
     BeamDose(copy.BeamDose),
     BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint),
+    BeamDoseType(copy.BeamDoseType),
     BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence),
     BeamMeterset(copy.BeamMeterset),
     ReferencedBeamNumber(copy.ReferencedBeamNumber)
@@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequen
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        AlternateBeamDose = copy.AlternateBeamDose;
+        AlternateBeamDoseType = copy.AlternateBeamDoseType;
         BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit;
         BeamDose = copy.BeamDose;
         BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint;
+        BeamDoseType = copy.BeamDoseType;
         BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence;
         BeamMeterset = copy.BeamMeterset;
         ReferencedBeamNumber = copy.ReferencedBeamNumber;
@@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::clear()
         ReferencedBeamNumber.clear();
         BeamDoseSpecificationPoint.clear();
         BeamDose.clear();
+        BeamDoseType.clear();
+        AlternateBeamDose.clear();
+        AlternateBeamDoseType.clear();
         BeamDoseVerificationControlPointSequence.clear();
         BeamMeterset.clear();
         BeamDeliveryDurationLimit.clear();
@@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::isEmpty()
     return ReferencedBeamNumber.isEmpty() &&
            BeamDoseSpecificationPoint.isEmpty() &&
            BeamDose.isEmpty() &&
+           BeamDoseType.isEmpty() &&
+           AlternateBeamDose.isEmpty() &&
+           AlternateBeamDoseType.isEmpty() &&
            BeamDoseVerificationControlPointSequence.isEmpty() &&
            BeamMeterset.isEmpty() &&
            BeamDeliveryDurationLimit.isEmpty();
@@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::read(DcmIte
         getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence");
         BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence");
@@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt
         addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence");
         if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence");
@@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDose, value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDose
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(BeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamMeterset(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getReferenc
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDose.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDose
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = BeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamMeterset(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index acad21e3c9bd4de332a676a173a2da2fb88a1d60..f39f1eadef45f2abf28098dc66e89115935c2ce9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0b3b03b04a9571511029986238b08dba132839ac..41c1e29a7f84e77f2c6a51a6b43c9940f25feb96 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c115babb26fe3b588fb5e33a405da2aef7df025a..4b31beaac2add9cc70d56fe6ac242aafe44d34e0 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b64abf7e0c64b6e3f8cadb8a9020c5d43b95dc7b..32567678638b4fb519da116576f0bede769158d6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTROIContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d2f0e91fc5dabdc54ca1c6b79f8e41408052a637..f976e85eeabc6f9513a06e6dbc035d69c30ed2e8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTDoseROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4cd20b70a849b82257ee3004717f8398c1c2a548..69eed36a35df7b6fbdf87f6b6d58ee7d8c9d57a2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 00610038830250b56615a5fb12e4afb43ff865ef..2d0e3adf15ab2718a0253e98f8c0082602807dc3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0dadddd9fd5253db0b49ca95249d10c5435aad54..5eb40a9c6799721ca1b8c7f8e4b12fd78bd46ab6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9db4526f02c54f1933154fc2e0780b2994f74d41..de7c5fe11777ea8ba16d0c87814be4f66a3b31b5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index ec67009ab5143e37a2f3ce523c28e229df10310c..887e6ea73c549e3d40dcecdf90de133b3996de82 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTROIElementalCompositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e82a2865b8e7fef6f8a9419f7caf1a14599f333d..204d045b6ddca0e29e76f966ca062416625a4249 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a8b33d04084adf2f03f334cbf59938c6030f1e94..9bc8443b9060657731197bc53408240aa8bdcf60 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedFrameOfReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8b21d1143a2a014e4822290806ae2af1d244fc7f..b2a13a068f89b888c680bcd01c99ae52ee887407 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTROIIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,7 +34,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
+    SegmentedPropertyTypeModifierCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
@@ -55,7 +57,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
+    SegmentedPropertyTypeModifierCodeSequence(copy.SegmentedPropertyTypeModifierCodeSequence),
     URNCodeValue(copy.URNCodeValue)
 {
 }
@@ -84,7 +88,9 @@ DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::It
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
+        SegmentedPropertyTypeModifierCodeSequence = copy.SegmentedPropertyTypeModifierCodeSequence;
         URNCodeValue = copy.URNCodeValue;
     }
     return *this;
@@ -107,10 +113,12 @@ void DRTRTROIIdentificationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
         ContextGroupExtensionCreatorUID.clear();
+        SegmentedPropertyTypeModifierCodeSequence.clear();
     }
 }
 
@@ -128,10 +136,12 @@ OFBool DRTRTROIIdentificationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
-           ContextGroupExtensionCreatorUID.isEmpty();
+           ContextGroupExtensionCreatorUID.isEmpty() &&
+           SegmentedPropertyTypeModifierCodeSequence.isEmpty();
 }
 
 
@@ -159,10 +169,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RTROIIdentificationCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "RTROIIdentificationCodeSequence");
+        SegmentedPropertyTypeModifierCodeSequence.read(item, "1-n", "3", "RTROIIdentificationCodeSequence");
         result = EC_Normal;
     }
     return result;
@@ -186,10 +198,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RTROIIdentificationCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "RTROIIdentificationCodeSequence");
+        if (result.good()) result = SegmentedPropertyTypeModifierCodeSequence.write(item, "1-n", "3", "RTROIIdentificationCodeSequence");
     }
     return result;
 }
@@ -303,6 +317,15 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResource(OFStrin
 }
 
 
+OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +500,19 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResource(const O
 }
 
 
+OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 27c692698201c4f3ca95f23f77344e8501f1d431..48bc24e089232774ae7b4b9975e4b5222699e247 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 4628e26352e900b0abc48059c488418b7e8508cd..3948abca4b9b29b0858fa43b8da989e4197bc696 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedInstanceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 41c2ead7c1d3028de8eef154f00950a7eaf9025c..2b6f8e2fb6a4e1497ccb8d475e35c1fe0b8ab878 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f1548d242ed4dcd476b909cf0a9acdc33c7aefcf..a77e52a329ebac0cb8d411d44d21150c89da59b2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index e13e9d3572e2f5162df816c8daa7e0dd5e140213..66c108c3020a006226e19cf3b963f99eb54f5b2e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d1710aeea20bdbc55b3b3ded9af079479f702b5e..f386980cf6cd97b877f6cdcdccde54fe7fcc8e6b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 125b195efe4afcd4b0c6f99986c1f408f84e4ac3..012e113f3b81d0c137630bdf79db995e71a74291 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 093a758af7caf8da9e5f2036e60b2fb90fb0c8d4..cf13ee9603f0ccddf7cc32dd0a0c69be1c1f0a6a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTRequestedProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTRequestedProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestedProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestedProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestedProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestedProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResource(const OF
 }
 
 
+OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 0fd7a5d4f55652dcb0df1377115dfa747cef9407..a3b4cfe2130b401bdbe06774bb1c5094d7df5f7f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferringPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 53cd0a23e6730803e71b28dd54cc76d23c090616..d5df172875f69b69fc2ed790a2b210a567a51272 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReasonForPerformedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const OFBool emptyDefault
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedure
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTReasonForPerformedProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTReasonForPerformedProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::read(DcmItem &item
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForPerformedProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::write(DcmItem &ite
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForPerformedProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResource
 }
 
 
+OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResource
 }
 
 
+OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 0a8910b90c1db637b28bee36c6f7d72c639fc74b..bf0eaa3ba0eb17215e1708b8f7bc125d7b51126b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedPatientPhotoSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 6eb0ef4d4dbbbc842e7830e163590659fa043f24..b270a4983eeaa6ddc5754610e2263fcdaa00f46d 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTROIPhysicalPropertiesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 14f074405a4e4dc83a45f068efb37fc6ffee5d60..57cfe610ce06863f1bf855d5000bdaacc2d0f6d2 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedPerformedProcedureStepSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 03e800ef1c41747bc167a59ab82e4c531e31b74d..f29c4e9ee17095ee4546bf3f00c4b23c1032fe94 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedPatientSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0feb95854a13627ca3a8c76e8c7eeb1762f4af5f..9604026953b1f025f129234eb8eef56aadf01572 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedReferenceImageSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d583bd4ee4b3ed3c250d26f463bdbff268e4d3a8..eb7d750f7d4a39146486b5b411e6e8f204ddcfd7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3f51ce5dc2c8b219af3c5724569f1be243d7460d..f49762573942465f308b86d8bc75593e735a58ca 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 1938aae7a7da250b2fa9cc6adea5797ed4b34d53..c72e28250e038f687851ad178e78b18e1225fc78 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 5d8ad67f9a180e74bc3038bc4f321087c5a7242e..d6e3bf2f8c8875e14028a6eb36f37b5cad48ccbf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,7 +21,6 @@
 
 DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    AdditionalRTROIIdentificationCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     MaterialID(DCM_MaterialID),
     ObservationNumber(DCM_ObservationNumber),
     ROIInterpreter(DCM_ROIInterpreter),
@@ -40,7 +39,6 @@ DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem)
 
 DRTRTROIObservationsSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    AdditionalRTROIIdentificationCodeSequence(copy.AdditionalRTROIIdentificationCodeSequence),
     MaterialID(copy.MaterialID),
     ObservationNumber(copy.ObservationNumber),
     ROIInterpreter(copy.ROIInterpreter),
@@ -67,7 +65,6 @@ DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::Item::operator
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        AdditionalRTROIIdentificationCodeSequence = copy.AdditionalRTROIIdentificationCodeSequence;
         MaterialID = copy.MaterialID;
         ObservationNumber = copy.ObservationNumber;
         ROIInterpreter = copy.ROIInterpreter;
@@ -97,7 +94,6 @@ void DRTRTROIObservationsSequence::Item::clear()
         RTRelatedROISequence.clear();
         SegmentedPropertyCategoryCodeSequence.clear();
         RTROIIdentificationCodeSequence.clear();
-        AdditionalRTROIIdentificationCodeSequence.clear();
         RelatedRTROIObservationsSequence.clear();
         RTROIInterpretedType.clear();
         ROIInterpreter.clear();
@@ -116,7 +112,6 @@ OFBool DRTRTROIObservationsSequence::Item::isEmpty()
            RTRelatedROISequence.isEmpty() &&
            SegmentedPropertyCategoryCodeSequence.isEmpty() &&
            RTROIIdentificationCodeSequence.isEmpty() &&
-           AdditionalRTROIIdentificationCodeSequence.isEmpty() &&
            RelatedRTROIObservationsSequence.isEmpty() &&
            RTROIInterpretedType.isEmpty() &&
            ROIInterpreter.isEmpty() &&
@@ -145,7 +140,6 @@ OFCondition DRTRTROIObservationsSequence::Item::read(DcmItem &item)
         RTRelatedROISequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         SegmentedPropertyCategoryCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         RTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
-        AdditionalRTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         RelatedRTROIObservationsSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         getAndCheckElementFromDataset(item, RTROIInterpretedType, "1", "2", "RTROIObservationsSequence");
         getAndCheckElementFromDataset(item, ROIInterpreter, "1", "2", "RTROIObservationsSequence");
@@ -170,7 +164,6 @@ OFCondition DRTRTROIObservationsSequence::Item::write(DcmItem &item)
         if (result.good()) result = RTRelatedROISequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         if (result.good()) result = SegmentedPropertyCategoryCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         if (result.good()) result = RTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
-        if (result.good()) result = AdditionalRTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         if (result.good()) result = RelatedRTROIObservationsSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         addElementToDataset(result, item, new DcmCodeString(RTROIInterpretedType), "1", "2", "RTROIObservationsSequence");
         addElementToDataset(result, item, new DcmPersonName(ROIInterpreter), "1", "2", "RTROIObservationsSequence");
index 8847f97270cc4f76fefbf15edb4f85b8ce41a4bd..eb89126c59c61036170ffc81d8e95753771f5cb8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReasonForRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefault
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedure
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTReasonForRequestedProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTReasonForRequestedProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::read(DcmItem &item
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForRequestedProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::write(DcmItem &ite
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForRequestedProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResource
 }
 
 
+OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResource
 }
 
 
+OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index e11fe871c1f69b9292931c40665da88e9ce0b29e..2a76df7fad9d53ed6ddc8fc9c0577ae6db07e289 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRelatedRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index d149cb829c06cec20374d9757028cf9929589d1b..990e3d7eca2cc95b274dd51e7952a4567d06ab9a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTRelatedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b2988b09060b9b4926c3e01899b49d14a3e95a5c..ecd958bff3b1ec0bfe8d95f2e931b6acdca9f46e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 2e16c556120ba3521c874d6a149e682cb82ceadb..a2945db9420bb96fdf4a89dca744d6b5bfff6574 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3f084b004b3e7b42ae088c834151f2bf2c1ca887..9b88d801b1a0042cbd4f7cbeb1ceb54c3afaa0b3 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 008b6c43eadb57dea9c3105deaf7d4edc77b524f..87b11b5499e41a978d649e3fa248975893e8da80 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 830ede14b13ae06658407d8bad9d6a034fa12dbb..a1657bc24ab9cd92d6a922da87d2751d7d41936b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c31e213d7b1b613c869e59fe9b4c805863cbda3e..abe4cb08fc19d6b459e61f93a5c0c953c8ad4c98 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRequestingServiceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTRequestingServiceCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTRequestingServiceCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestingServiceCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestingServiceCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestingServiceCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestingServiceCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index fa949ae887efe5640d535afc22adf346c3427c03..987b24a177073fda82123ee939511b609186b42f 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c373227d53057c0b127d788ea6949a3dc298f4c4..14f9a097ca5126d3e1411644decc26d69be07ae7 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 42d12bafe67dd4788a4575e5fb4b5e9e4834099a..fd34f1c9dc4f44c9bd8364edfac2b9e6ae6f3dcf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index cfc26d58cb9824dccf646682994ccf46e8487f38..27a12cc17758f75451776703b1bdb00e7f70ecb5 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8f63f7805f538016e57f0fc238907d26ce83f4ca..0710c442900f18e569a3363870bd4c0928b57cc1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 302f371364b2917f7740b4f5f2d09c93b5a906f6..590b9b09abb2977b66afc822e956cd19176f09a1 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSetupImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index bbe4571c1781151b286c894da7d6756c288ac153..f193893244127d7ace7a150451fbdb3e7ce6821b 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 857ed829619e05b10cb221d74ac677e1dd5e2d4d..fa1f3556410dc234e669028c730033079f390296 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSOPSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a36e5c1a1d8d6fd84ae0ae9c4697c2369d77d7bc..a5c6332d1edcdf3fd105f0684fb8b7260866f7a9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSpatialRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 0f4da67d169feaa9fba03c12df1cabe0ffff29b2..ab21a6afa30e473a356afeeb46fc162471db7dfb 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3165635b53af58a78675b48cc9e5d8888094c745..a03b9c23ea12aceed011160961d7047047660c18 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 90ab23cc20f90e40ccc8d6beca7eee544536a48d..c399bc82b1c6234b5ff1880a6ed51d346bd60b4c 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index f8824e26870533529657ad031d6f4a175769c764..52013db90cd9338be4d60541aab16309ea14b599 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b14e8298ffdee814c2a27a1cd22e68af2d18e756..b671db6c8edad0d25e0c05af48136be635494224 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 7934196986d2eeddd384302e0d8bef97ec3c299c..8e9d7f45bb36d7ac234302cca146ea41b3786b34 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c79453424cf40df8ffa10664b40e1e596c6353ca..1547bda26b7cc0d6d272a2a318c540821f25fa56 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9f709552ec17068a327de8aee12d68f8ad7fe82f..6698b8e9799fe775fb9297c5fc0073b2213ce474 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRealWorldValueMappingSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,6 +21,8 @@
 
 DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    DoubleFloatRealWorldValueFirstValueMapped(DCM_DoubleFloatRealWorldValueFirstValueMapped),
+    DoubleFloatRealWorldValueLastValueMapped(DCM_DoubleFloatRealWorldValueLastValueMapped),
     LUTExplanation(DCM_LUTExplanation),
     LUTLabel(DCM_LUTLabel),
     MeasurementUnitsCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
@@ -36,6 +38,8 @@ DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem)
 
 DRTRealWorldValueMappingSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    DoubleFloatRealWorldValueFirstValueMapped(copy.DoubleFloatRealWorldValueFirstValueMapped),
+    DoubleFloatRealWorldValueLastValueMapped(copy.DoubleFloatRealWorldValueLastValueMapped),
     LUTExplanation(copy.LUTExplanation),
     LUTLabel(copy.LUTLabel),
     MeasurementUnitsCodeSequence(copy.MeasurementUnitsCodeSequence),
@@ -59,6 +63,8 @@ DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::Item::
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        DoubleFloatRealWorldValueFirstValueMapped = copy.DoubleFloatRealWorldValueFirstValueMapped;
+        DoubleFloatRealWorldValueLastValueMapped = copy.DoubleFloatRealWorldValueLastValueMapped;
         LUTExplanation = copy.LUTExplanation;
         LUTLabel = copy.LUTLabel;
         MeasurementUnitsCodeSequence = copy.MeasurementUnitsCodeSequence;
@@ -80,6 +86,8 @@ void DRTRealWorldValueMappingSequence::Item::clear()
         /* clear all DICOM attributes */
         RealWorldValueFirstValueMapped.clear();
         RealWorldValueLastValueMapped.clear();
+        DoubleFloatRealWorldValueFirstValueMapped.clear();
+        DoubleFloatRealWorldValueLastValueMapped.clear();
         RealWorldValueIntercept.clear();
         RealWorldValueSlope.clear();
         RealWorldValueLUTData.clear();
@@ -95,6 +103,8 @@ OFBool DRTRealWorldValueMappingSequence::Item::isEmpty()
 {
     return RealWorldValueFirstValueMapped.isEmpty() &&
            RealWorldValueLastValueMapped.isEmpty() &&
+           DoubleFloatRealWorldValueFirstValueMapped.isEmpty() &&
+           DoubleFloatRealWorldValueLastValueMapped.isEmpty() &&
            RealWorldValueIntercept.isEmpty() &&
            RealWorldValueSlope.isEmpty() &&
            RealWorldValueLUTData.isEmpty() &&
@@ -118,8 +128,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::read(DcmItem &item)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1", "RealWorldValueMappingSequence");
-        getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence");
         getAndCheckElementFromDataset(item, RealWorldValueIntercept, "1", "1C", "RealWorldValueMappingSequence");
         getAndCheckElementFromDataset(item, RealWorldValueSlope, "1", "1C", "RealWorldValueMappingSequence");
         getAndCheckElementFromDataset(item, RealWorldValueLUTData, "1-n", "1C", "RealWorldValueMappingSequence");
@@ -139,8 +151,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item)
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1", "RealWorldValueMappingSequence");
-        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueIntercept), "1", "1C", "RealWorldValueMappingSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueSlope), "1", "1C", "RealWorldValueMappingSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueLUTData), "1-n", "1C", "RealWorldValueMappingSequence");
@@ -153,6 +167,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item)
 }
 
 
+OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueFirstValueMapped).getFloat64(value, pos);
+}
+
+
+OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueLastValueMapped).getFloat64(value, pos);
+}
+
+
 OFCondition DRTRealWorldValueMappingSequence::Item::getLUTExplanation(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -216,6 +248,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::getRealWorldValueSlope(Float
 }
 
 
+OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DoubleFloatRealWorldValueFirstValueMapped.putFloat64(value, pos);
+}
+
+
+OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DoubleFloatRealWorldValueLastValueMapped.putFloat64(value, pos);
+}
+
+
 OFCondition DRTRealWorldValueMappingSequence::Item::setLUTExplanation(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 78a10f0e075a85f33ce34f6761f654d719b4421b..45f0d8a95acf09302bf378efc3e886135f34e146 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTStudiesContainingOtherReferencedInstancesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtscs.cc b/dcmrt/libsrc/drtscs.cc
new file mode 100644 (file)
index 0000000..143661c
--- /dev/null
@@ -0,0 +1,957 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTStrainCodeSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtscs.h"
+
+
+// --- item class ---
+
+DRTStrainCodeSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    CodeMeaning(DCM_CodeMeaning),
+    CodeValue(DCM_CodeValue),
+    CodingSchemeDesignator(DCM_CodingSchemeDesignator),
+    CodingSchemeVersion(DCM_CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(DCM_ContextGroupLocalVersion),
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
+    EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    LongCodeValue(DCM_LongCodeValue),
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID),
+    URNCodeValue(DCM_URNCodeValue)
+{
+}
+
+
+DRTStrainCodeSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    CodeMeaning(copy.CodeMeaning),
+    CodeValue(copy.CodeValue),
+    CodingSchemeDesignator(copy.CodingSchemeDesignator),
+    CodingSchemeVersion(copy.CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(copy.ContextGroupLocalVersion),
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
+    EquivalentCodeSequence(copy.EquivalentCodeSequence),
+    LongCodeValue(copy.LongCodeValue),
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID),
+    URNCodeValue(copy.URNCodeValue)
+{
+}
+
+
+DRTStrainCodeSequence::Item::~Item()
+{
+}
+
+
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        CodeMeaning = copy.CodeMeaning;
+        CodeValue = copy.CodeValue;
+        CodingSchemeDesignator = copy.CodingSchemeDesignator;
+        CodingSchemeVersion = copy.CodingSchemeVersion;
+        ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID;
+        ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag;
+        ContextGroupLocalVersion = copy.ContextGroupLocalVersion;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
+        EquivalentCodeSequence = copy.EquivalentCodeSequence;
+        LongCodeValue = copy.LongCodeValue;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
+        URNCodeValue = copy.URNCodeValue;
+    }
+    return *this;
+}
+
+
+void DRTStrainCodeSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        CodeValue.clear();
+        CodingSchemeDesignator.clear();
+        CodingSchemeVersion.clear();
+        CodeMeaning.clear();
+        LongCodeValue.clear();
+        URNCodeValue.clear();
+        EquivalentCodeSequence.clear();
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
+        ContextGroupVersion.clear();
+        ContextGroupExtensionFlag.clear();
+        ContextGroupLocalVersion.clear();
+        ContextGroupExtensionCreatorUID.clear();
+    }
+}
+
+
+OFBool DRTStrainCodeSequence::Item::isEmpty()
+{
+    return CodeValue.isEmpty() &&
+           CodingSchemeDesignator.isEmpty() &&
+           CodingSchemeVersion.isEmpty() &&
+           CodeMeaning.isEmpty() &&
+           LongCodeValue.isEmpty() &&
+           URNCodeValue.isEmpty() &&
+           EquivalentCodeSequence.isEmpty() &&
+           ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
+           ContextGroupVersion.isEmpty() &&
+           ContextGroupExtensionFlag.isEmpty() &&
+           ContextGroupLocalVersion.isEmpty() &&
+           ContextGroupExtensionCreatorUID.isEmpty();
+}
+
+
+OFBool DRTStrainCodeSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainCodeSequence");
+        EquivalentCodeSequence.read(item, "1-n", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainCodeSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainCodeSequence");
+        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainCodeSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodeMeaning, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodeValue, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodingSchemeDesignator, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodingSchemeVersion, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionFlag, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupLocalVersion, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextIdentifier, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextUID, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(LongCodeValue, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(URNCodeValue, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodeMeaning.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodingSchemeDesignator.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodingSchemeVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionCreatorUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionFlag.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupLocalVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = LongCodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = URNCodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTStrainCodeSequence::DRTStrainCodeSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTStrainCodeSequence::DRTStrainCodeSequence(const DRTStrainCodeSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTStrainCodeSequence &DRTStrainCodeSequence::operator=(const DRTStrainCodeSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTStrainCodeSequence::~DRTStrainCodeSequence()
+{
+    clear();
+}
+
+
+void DRTStrainCodeSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTStrainCodeSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTStrainCodeSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTStrainCodeSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTStrainCodeSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTStrainCodeSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTStrainCodeSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTStrainCodeSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::read(DcmItem &dataset,
+                                        const OFString &card,
+                                        const OFString &type,
+                                        const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_StrainCodeSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_StrainCodeSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::write(DcmItem &dataset,
+                                         const OFString &card,
+                                         const OFString &type,
+                                         const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainCodeSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 5dd75d956ec09060c42e4ed5dbeec4f2964dba88..d53b3366913e2990de1b1f42592c9747cc08700e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSeriesDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTSeriesDescriptionCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTSeriesDescriptionCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SeriesDescriptionCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SeriesDescriptionCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SeriesDescriptionCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SeriesDescriptionCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 946e59367a78b815069d9f6c36cbb488f2adb344..b97c0507756d923fe0b696b2e577ed25fadf9c21 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSetupDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 844fc9585d4762b2dc6e33c45069efba01bd9e1d..8c796d75e14a61c81261e6593d275f7e18a0495a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTShieldingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtsins.cc b/dcmrt/libsrc/drtsins.cc
new file mode 100644 (file)
index 0000000..7eb427b
--- /dev/null
@@ -0,0 +1,580 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTSourceInstanceSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtsins.h"
+
+
+// --- item class ---
+
+DRTSourceInstanceSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    ReferencedSOPClassUID(DCM_ReferencedSOPClassUID),
+    ReferencedSOPInstanceUID(DCM_ReferencedSOPInstanceUID)
+{
+}
+
+
+DRTSourceInstanceSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence),
+    ReferencedSOPClassUID(copy.ReferencedSOPClassUID),
+    ReferencedSOPInstanceUID(copy.ReferencedSOPInstanceUID)
+{
+}
+
+
+DRTSourceInstanceSequence::Item::~Item()
+{
+}
+
+
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence;
+        ReferencedSOPClassUID = copy.ReferencedSOPClassUID;
+        ReferencedSOPInstanceUID = copy.ReferencedSOPInstanceUID;
+    }
+    return *this;
+}
+
+
+void DRTSourceInstanceSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        ReferencedSOPClassUID.clear();
+        ReferencedSOPInstanceUID.clear();
+        PurposeOfReferenceCodeSequence.clear();
+    }
+}
+
+
+OFBool DRTSourceInstanceSequence::Item::isEmpty()
+{
+    return ReferencedSOPClassUID.isEmpty() &&
+           ReferencedSOPInstanceUID.isEmpty() &&
+           PurposeOfReferenceCodeSequence.isEmpty();
+}
+
+
+OFBool DRTSourceInstanceSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTSourceInstanceSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, ReferencedSOPClassUID, "1", "1", "SourceInstanceSequence");
+        getAndCheckElementFromDataset(item, ReferencedSOPInstanceUID, "1", "1", "SourceInstanceSequence");
+        PurposeOfReferenceCodeSequence.read(item, "1-n", "3", "SourceInstanceSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPClassUID), "1", "1", "SourceInstanceSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPInstanceUID), "1", "1", "SourceInstanceSequence");
+        if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "3", "SourceInstanceSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPClassUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ReferencedSOPClassUID, value, pos);
+}
+
+
+OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPInstanceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ReferencedSOPInstanceUID, value, pos);
+}
+
+
+OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPClassUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ReferencedSOPClassUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPInstanceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ReferencedSOPInstanceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTSourceInstanceSequence::DRTSourceInstanceSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTSourceInstanceSequence::DRTSourceInstanceSequence(const DRTSourceInstanceSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTSourceInstanceSequence &DRTSourceInstanceSequence::operator=(const DRTSourceInstanceSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTSourceInstanceSequence::~DRTSourceInstanceSequence()
+{
+    clear();
+}
+
+
+void DRTSourceInstanceSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTSourceInstanceSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTSourceInstanceSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTSourceInstanceSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTSourceInstanceSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTSourceInstanceSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTSourceInstanceSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTSourceInstanceSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::read(DcmItem &dataset,
+                                            const OFString &card,
+                                            const OFString &type,
+                                            const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_SourceInstanceSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_SourceInstanceSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTSourceInstanceSequence::write(DcmItem &dataset,
+                                             const OFString &card,
+                                             const OFString &type,
+                                             const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourceInstanceSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 85b953c9d1436e200d14b6e557fa97147bf75bc4..0213e7c8dd53ae342c3d73bc4a53a63aadfed2ae 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSourceImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index b0febd2b1781c9000c52cc0826c6a1795edcdddd..f1a1d35e6b54dffca8abc91d98275e139e310fbf 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index be55f83c51fa225923355eeeaaccdce74f63024f..a504265bf826e33ec77004e8cba119059e818460 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSegmentedPropertyCategoryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const OFBool emptyDefaultIt
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCode
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTSegmentedPropertyCategoryCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTSegmentedPropertyCategoryCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyCategoryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyCategoryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResource(O
 }
 
 
+OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResource(c
 }
 
 
+OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index 7f47f65e765b164bfaf207083e08c35f7f29f4de..fc2a4402c834b7d5efa9941e2e20ce38cc099ffd 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTScheduledProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
@@ -56,6 +57,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     ProtocolContextSequence(copy.ProtocolContextSequence),
     URNCodeValue(copy.URNCodeValue)
@@ -86,6 +88,7 @@ DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         ProtocolContextSequence = copy.ProtocolContextSequence;
         URNCodeValue = copy.URNCodeValue;
@@ -110,6 +113,7 @@ void DRTScheduledProtocolCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -132,6 +136,7 @@ OFBool DRTScheduledProtocolCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -164,6 +169,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ScheduledProtocolCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ScheduledProtocolCodeSequence");
@@ -192,6 +198,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ScheduledProtocolCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ScheduledProtocolCodeSequence");
@@ -310,6 +317,15 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -484,6 +500,19 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtspgis.cc b/dcmrt/libsrc/drtspgis.cc
new file mode 100644 (file)
index 0000000..a105a57
--- /dev/null
@@ -0,0 +1,580 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTSourcePatientGroupIdentificationSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtspgis.h"
+
+
+// --- item class ---
+
+DRTSourcePatientGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    IssuerOfPatientID(DCM_IssuerOfPatientID),
+    IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    PatientID(DCM_PatientID)
+{
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    IssuerOfPatientID(copy.IssuerOfPatientID),
+    IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
+    PatientID(copy.PatientID)
+{
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::Item::~Item()
+{
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        IssuerOfPatientID = copy.IssuerOfPatientID;
+        IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
+        PatientID = copy.PatientID;
+    }
+    return *this;
+}
+
+
+void DRTSourcePatientGroupIdentificationSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        PatientID.clear();
+        IssuerOfPatientID.clear();
+        IssuerOfPatientIDQualifiersSequence.clear();
+    }
+}
+
+
+OFBool DRTSourcePatientGroupIdentificationSequence::Item::isEmpty()
+{
+    return PatientID.isEmpty() &&
+           IssuerOfPatientID.isEmpty() &&
+           IssuerOfPatientIDQualifiersSequence.isEmpty();
+}
+
+
+OFBool DRTSourcePatientGroupIdentificationSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, PatientID, "1", "1", "SourcePatientGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "SourcePatientGroupIdentificationSequence");
+        IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "SourcePatientGroupIdentificationSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "SourcePatientGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "SourcePatientGroupIdentificationSequence");
+        if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "SourcePatientGroupIdentificationSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(IssuerOfPatientID, value, pos);
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PatientID, value, pos);
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = IssuerOfPatientID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PatientID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTSourcePatientGroupIdentificationSequence &DRTSourcePatientGroupIdentificationSequence::operator=(const DRTSourcePatientGroupIdentificationSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::~DRTSourcePatientGroupIdentificationSequence()
+{
+    clear();
+}
+
+
+void DRTSourcePatientGroupIdentificationSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTSourcePatientGroupIdentificationSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTSourcePatientGroupIdentificationSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTSourcePatientGroupIdentificationSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::read(DcmItem &dataset,
+                                                              const OFString &card,
+                                                              const OFString &type,
+                                                              const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_SourcePatientGroupIdentificationSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_SourcePatientGroupIdentificationSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTSourcePatientGroupIdentificationSequence::write(DcmItem &dataset,
+                                                               const OFString &card,
+                                                               const OFString &type,
+                                                               const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourcePatientGroupIdentificationSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
diff --git a/dcmrt/libsrc/drtsptcs.cc b/dcmrt/libsrc/drtsptcs.cc
new file mode 100644 (file)
index 0000000..ac10cb9
--- /dev/null
@@ -0,0 +1,957 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTSegmentedPropertyTypeModifierCodeSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtsptcs.h"
+
+
+// --- item class ---
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    CodeMeaning(DCM_CodeMeaning),
+    CodeValue(DCM_CodeValue),
+    CodingSchemeDesignator(DCM_CodingSchemeDesignator),
+    CodingSchemeVersion(DCM_CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(DCM_ContextGroupLocalVersion),
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
+    EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    LongCodeValue(DCM_LongCodeValue),
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID),
+    URNCodeValue(DCM_URNCodeValue)
+{
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    CodeMeaning(copy.CodeMeaning),
+    CodeValue(copy.CodeValue),
+    CodingSchemeDesignator(copy.CodingSchemeDesignator),
+    CodingSchemeVersion(copy.CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(copy.ContextGroupLocalVersion),
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
+    EquivalentCodeSequence(copy.EquivalentCodeSequence),
+    LongCodeValue(copy.LongCodeValue),
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID),
+    URNCodeValue(copy.URNCodeValue)
+{
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item::~Item()
+{
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        CodeMeaning = copy.CodeMeaning;
+        CodeValue = copy.CodeValue;
+        CodingSchemeDesignator = copy.CodingSchemeDesignator;
+        CodingSchemeVersion = copy.CodingSchemeVersion;
+        ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID;
+        ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag;
+        ContextGroupLocalVersion = copy.ContextGroupLocalVersion;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
+        EquivalentCodeSequence = copy.EquivalentCodeSequence;
+        LongCodeValue = copy.LongCodeValue;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
+        URNCodeValue = copy.URNCodeValue;
+    }
+    return *this;
+}
+
+
+void DRTSegmentedPropertyTypeModifierCodeSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        CodeValue.clear();
+        CodingSchemeDesignator.clear();
+        CodingSchemeVersion.clear();
+        CodeMeaning.clear();
+        LongCodeValue.clear();
+        URNCodeValue.clear();
+        EquivalentCodeSequence.clear();
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
+        ContextGroupVersion.clear();
+        ContextGroupExtensionFlag.clear();
+        ContextGroupLocalVersion.clear();
+        ContextGroupExtensionCreatorUID.clear();
+    }
+}
+
+
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isEmpty()
+{
+    return CodeValue.isEmpty() &&
+           CodingSchemeDesignator.isEmpty() &&
+           CodingSchemeVersion.isEmpty() &&
+           CodeMeaning.isEmpty() &&
+           LongCodeValue.isEmpty() &&
+           URNCodeValue.isEmpty() &&
+           EquivalentCodeSequence.isEmpty() &&
+           ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
+           ContextGroupVersion.isEmpty() &&
+           ContextGroupExtensionFlag.isEmpty() &&
+           ContextGroupLocalVersion.isEmpty() &&
+           ContextGroupExtensionCreatorUID.isEmpty();
+}
+
+
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        EquivalentCodeSequence.read(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodeMeaning, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodeValue, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodingSchemeDesignator, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodingSchemeVersion, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionFlag, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupLocalVersion, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextIdentifier, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextUID, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(LongCodeValue, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(URNCodeValue, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodeMeaning.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodingSchemeDesignator.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodingSchemeVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionCreatorUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionFlag.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupLocalVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = LongCodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = URNCodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence &DRTSegmentedPropertyTypeModifierCodeSequence::operator=(const DRTSegmentedPropertyTypeModifierCodeSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::~DRTSegmentedPropertyTypeModifierCodeSequence()
+{
+    clear();
+}
+
+
+void DRTSegmentedPropertyTypeModifierCodeSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTSegmentedPropertyTypeModifierCodeSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::read(DcmItem &dataset,
+                                                               const OFString &card,
+                                                               const OFString &type,
+                                                               const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_SegmentedPropertyTypeModifierCodeSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_SegmentedPropertyTypeModifierCodeSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::write(DcmItem &dataset,
+                                                                const OFString &card,
+                                                                const OFString &type,
+                                                                const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SegmentedPropertyTypeModifierCodeSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 0bfbd0c6895bf9d85330ebd543bbd667b80c0261..00bb93a8a9ef156796b59d45fe5dd5250d8045e9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtssrcs.cc b/dcmrt/libsrc/drtssrcs.cc
new file mode 100644 (file)
index 0000000..da24b05
--- /dev/null
@@ -0,0 +1,957 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTStrainSourceRegistryCodeSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtssrcs.h"
+
+
+// --- item class ---
+
+DRTStrainSourceRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    CodeMeaning(DCM_CodeMeaning),
+    CodeValue(DCM_CodeValue),
+    CodingSchemeDesignator(DCM_CodingSchemeDesignator),
+    CodingSchemeVersion(DCM_CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(DCM_ContextGroupLocalVersion),
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
+    EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    LongCodeValue(DCM_LongCodeValue),
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID),
+    URNCodeValue(DCM_URNCodeValue)
+{
+}
+
+
+DRTStrainSourceRegistryCodeSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    CodeMeaning(copy.CodeMeaning),
+    CodeValue(copy.CodeValue),
+    CodingSchemeDesignator(copy.CodingSchemeDesignator),
+    CodingSchemeVersion(copy.CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(copy.ContextGroupLocalVersion),
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
+    EquivalentCodeSequence(copy.EquivalentCodeSequence),
+    LongCodeValue(copy.LongCodeValue),
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID),
+    URNCodeValue(copy.URNCodeValue)
+{
+}
+
+
+DRTStrainSourceRegistryCodeSequence::Item::~Item()
+{
+}
+
+
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        CodeMeaning = copy.CodeMeaning;
+        CodeValue = copy.CodeValue;
+        CodingSchemeDesignator = copy.CodingSchemeDesignator;
+        CodingSchemeVersion = copy.CodingSchemeVersion;
+        ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID;
+        ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag;
+        ContextGroupLocalVersion = copy.ContextGroupLocalVersion;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
+        EquivalentCodeSequence = copy.EquivalentCodeSequence;
+        LongCodeValue = copy.LongCodeValue;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
+        URNCodeValue = copy.URNCodeValue;
+    }
+    return *this;
+}
+
+
+void DRTStrainSourceRegistryCodeSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        CodeValue.clear();
+        CodingSchemeDesignator.clear();
+        CodingSchemeVersion.clear();
+        CodeMeaning.clear();
+        LongCodeValue.clear();
+        URNCodeValue.clear();
+        EquivalentCodeSequence.clear();
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
+        ContextGroupVersion.clear();
+        ContextGroupExtensionFlag.clear();
+        ContextGroupLocalVersion.clear();
+        ContextGroupExtensionCreatorUID.clear();
+    }
+}
+
+
+OFBool DRTStrainSourceRegistryCodeSequence::Item::isEmpty()
+{
+    return CodeValue.isEmpty() &&
+           CodingSchemeDesignator.isEmpty() &&
+           CodingSchemeVersion.isEmpty() &&
+           CodeMeaning.isEmpty() &&
+           LongCodeValue.isEmpty() &&
+           URNCodeValue.isEmpty() &&
+           EquivalentCodeSequence.isEmpty() &&
+           ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
+           ContextGroupVersion.isEmpty() &&
+           ContextGroupExtensionFlag.isEmpty() &&
+           ContextGroupLocalVersion.isEmpty() &&
+           ContextGroupExtensionCreatorUID.isEmpty();
+}
+
+
+OFBool DRTStrainSourceRegistryCodeSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence");
+        EquivalentCodeSequence.read(item, "1-n", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainSourceRegistryCodeSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence");
+        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainSourceRegistryCodeSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodeMeaning, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodeValue, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodingSchemeDesignator, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(CodingSchemeVersion, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionFlag, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupLocalVersion, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextIdentifier, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextUID, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(LongCodeValue, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(URNCodeValue, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodeMeaning.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodingSchemeDesignator.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = CodingSchemeVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionCreatorUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionFlag.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupLocalVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = LongCodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = URNCodeValue.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTStrainSourceRegistryCodeSequence &DRTStrainSourceRegistryCodeSequence::operator=(const DRTStrainSourceRegistryCodeSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTStrainSourceRegistryCodeSequence::~DRTStrainSourceRegistryCodeSequence()
+{
+    clear();
+}
+
+
+void DRTStrainSourceRegistryCodeSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTStrainSourceRegistryCodeSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTStrainSourceRegistryCodeSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTStrainSourceRegistryCodeSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::read(DcmItem &dataset,
+                                                      const OFString &card,
+                                                      const OFString &type,
+                                                      const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_StrainSourceRegistryCodeSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_StrainSourceRegistryCodeSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::write(DcmItem &dataset,
+                                                       const OFString &card,
+                                                       const OFString &type,
+                                                       const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainSourceRegistryCodeSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index bf467a71ea612ce53c43cf582a65cde413850c7b..94220ccfedc71f70d7b46dab5ed273c69c55cd82 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTStructureSetROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtsss.cc b/dcmrt/libsrc/drtsss.cc
new file mode 100644 (file)
index 0000000..c7ca8ed
--- /dev/null
@@ -0,0 +1,580 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTStrainStockSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtsss.h"
+
+
+// --- item class ---
+
+DRTStrainStockSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    StrainSource(DCM_StrainSource),
+    StrainSourceRegistryCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    StrainStockNumber(DCM_StrainStockNumber)
+{
+}
+
+
+DRTStrainStockSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    StrainSource(copy.StrainSource),
+    StrainSourceRegistryCodeSequence(copy.StrainSourceRegistryCodeSequence),
+    StrainStockNumber(copy.StrainStockNumber)
+{
+}
+
+
+DRTStrainStockSequence::Item::~Item()
+{
+}
+
+
+DRTStrainStockSequence::Item &DRTStrainStockSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        StrainSource = copy.StrainSource;
+        StrainSourceRegistryCodeSequence = copy.StrainSourceRegistryCodeSequence;
+        StrainStockNumber = copy.StrainStockNumber;
+    }
+    return *this;
+}
+
+
+void DRTStrainStockSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        StrainStockNumber.clear();
+        StrainSource.clear();
+        StrainSourceRegistryCodeSequence.clear();
+    }
+}
+
+
+OFBool DRTStrainStockSequence::Item::isEmpty()
+{
+    return StrainStockNumber.isEmpty() &&
+           StrainSource.isEmpty() &&
+           StrainSourceRegistryCodeSequence.isEmpty();
+}
+
+
+OFBool DRTStrainStockSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTStrainStockSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, StrainStockNumber, "1", "1", "StrainStockSequence");
+        getAndCheckElementFromDataset(item, StrainSource, "1", "1", "StrainStockSequence");
+        StrainSourceRegistryCodeSequence.read(item, "1-n", "1", "StrainStockSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmLongString(StrainStockNumber), "1", "1", "StrainStockSequence");
+        addElementToDataset(result, item, new DcmLongString(StrainSource), "1", "1", "StrainStockSequence");
+        if (result.good()) result = StrainSourceRegistryCodeSequence.write(item, "1-n", "1", "StrainStockSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::Item::getStrainSource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(StrainSource, value, pos);
+}
+
+
+OFCondition DRTStrainStockSequence::Item::getStrainStockNumber(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(StrainStockNumber, value, pos);
+}
+
+
+OFCondition DRTStrainStockSequence::Item::setStrainSource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = StrainSource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::Item::setStrainStockNumber(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = StrainStockNumber.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTStrainStockSequence::DRTStrainStockSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTStrainStockSequence::DRTStrainStockSequence(const DRTStrainStockSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTStrainStockSequence &DRTStrainStockSequence::operator=(const DRTStrainStockSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTStrainStockSequence::~DRTStrainStockSequence()
+{
+    clear();
+}
+
+
+void DRTStrainStockSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTStrainStockSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTStrainStockSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTStrainStockSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTStrainStockSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTStrainStockSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTStrainStockSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTStrainStockSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::read(DcmItem &dataset,
+                                         const OFString &card,
+                                         const OFString &type,
+                                         const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_StrainStockSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_StrainStockSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainStockSequence::write(DcmItem &dataset,
+                                          const OFString &card,
+                                          const OFString &type,
+                                          const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainStockSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 29308f057826e45f5142e6196c8b8b866fa188a3..f0ad51c5658b1a2b2111122fd2c4f90c54b8d607 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTStructureSetIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -119,6 +139,7 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -140,6 +161,12 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     ReviewDate(DCM_ReviewDate),
     ReviewTime(DCM_ReviewTime),
     ReviewerName(DCM_ReviewerName),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -150,6 +177,8 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -180,6 +209,9 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -195,12 +227,19 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -234,7 +273,16 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -254,6 +302,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -276,6 +325,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -297,6 +347,12 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     ReviewDate(copy.ReviewDate),
     ReviewTime(copy.ReviewTime),
     ReviewerName(copy.ReviewerName),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -307,6 +363,8 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -343,6 +401,9 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -358,12 +419,19 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -397,7 +465,16 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -417,6 +494,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -439,6 +517,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -460,6 +539,12 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         ReviewDate = copy.ReviewDate;
         ReviewTime = copy.ReviewTime;
         ReviewerName = copy.ReviewerName;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -470,6 +555,8 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -501,6 +588,9 @@ void DRTStructureSetIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -516,12 +606,19 @@ void DRTStructureSetIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -555,7 +652,16 @@ void DRTStructureSetIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -575,6 +681,7 @@ void DRTStructureSetIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -597,6 +704,7 @@ void DRTStructureSetIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -618,6 +726,12 @@ void DRTStructureSetIOD::clear()
     ReviewDate.clear();
     ReviewTime.clear();
     ReviewerName.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -628,6 +742,8 @@ void DRTStructureSetIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -703,6 +819,7 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -742,6 +859,14 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -753,6 +878,8 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -789,6 +916,9 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -804,12 +934,19 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -865,7 +1002,16 @@ OFCondition DRTStructureSetIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -902,6 +1048,7 @@ OFCondition DRTStructureSetIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -940,6 +1087,9 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -955,12 +1105,19 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1005,7 +1162,16 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1033,6 +1199,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1062,6 +1229,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1100,6 +1268,17 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1111,6 +1290,8 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1171,7 +1352,16 @@ OFBool DRTStructureSetIOD::isPatientStudyModulePresent(const OFBool /*complete*/
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1231,6 +1421,18 @@ OFBool DRTStructureSetIOD::isApprovalModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTStructureSetIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTStructureSetIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1263,6 +1465,12 @@ OFCondition DRTStructureSetIOD::getAdmittingDiagnosesDescription(OFString &value
 }
 
 
+OFCondition DRTStructureSetIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -1389,6 +1597,12 @@ OFCondition DRTStructureSetIOD::getDeidentificationMethod(OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1473,6 +1687,12 @@ OFCondition DRTStructureSetIOD::getIssuerOfPatientID(OFString &value, const sign
 }
 
 
+OFCondition DRTStructureSetIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1491,6 +1711,36 @@ OFCondition DRTStructureSetIOD::getManufacturerModelName(OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1539,18 +1789,42 @@ OFCondition DRTStructureSetIOD::getPatientAge(OFString &value, const signed long
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1563,6 +1837,12 @@ OFCondition DRTStructureSetIOD::getPatientComments(OFString &value, const signed
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1611,6 +1891,12 @@ OFCondition DRTStructureSetIOD::getPatientSpeciesDescription(OFString &value, co
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1677,6 +1963,12 @@ OFCondition DRTStructureSetIOD::getPositionReferenceIndicator(OFString &value, c
 }
 
 
+OFCondition DRTStructureSetIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getQualityControlSubject(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(QualityControlSubject, value, pos);
@@ -1815,6 +2107,12 @@ OFCondition DRTStructureSetIOD::getServiceEpisodeID(OFString &value, const signe
 }
 
 
+OFCondition DRTStructureSetIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1845,6 +2143,24 @@ OFCondition DRTStructureSetIOD::getStationName(OFString &value, const signed lon
 }
 
 
+OFCondition DRTStructureSetIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getStructureSetDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StructureSetDate, value, pos);
@@ -1953,6 +2269,15 @@ OFCondition DRTStructureSetIOD::setAdmittingDiagnosesDescription(const OFString
 }
 
 
+OFCondition DRTStructureSetIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2142,6 +2467,15 @@ OFCondition DRTStructureSetIOD::setDeidentificationMethod(const OFString &value,
 }
 
 
+OFCondition DRTStructureSetIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2259,6 +2593,15 @@ OFCondition DRTStructureSetIOD::setIssuerOfPatientID(const OFString &value, cons
 }
 
 
+OFCondition DRTStructureSetIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2286,6 +2629,33 @@ OFCondition DRTStructureSetIOD::setManufacturerModelName(const OFString &value,
 }
 
 
+OFCondition DRTStructureSetIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2358,6 +2728,15 @@ OFCondition DRTStructureSetIOD::setPatientAge(const OFString &value, const OFBoo
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2367,6 +2746,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2376,6 +2764,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2394,6 +2791,15 @@ OFCondition DRTStructureSetIOD::setPatientComments(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2457,6 +2863,15 @@ OFCondition DRTStructureSetIOD::setPatientSpeciesDescription(const OFString &val
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2544,6 +2959,12 @@ OFCondition DRTStructureSetIOD::setPositionReferenceIndicator(const OFString &va
 }
 
 
+OFCondition DRTStructureSetIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::setQualityControlSubject(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2742,6 +3163,15 @@ OFCondition DRTStructureSetIOD::setServiceEpisodeID(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2778,6 +3208,33 @@ OFCondition DRTStructureSetIOD::setStationName(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTStructureSetIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setStructureSetDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index 60acc416c8bbe782db828ac8fdd225f681d9ca17..9032c7e29f8e2a1abb43ee419096c4c67cd937e8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8d9d2f573a6238589e8e631a50fdb2e0bc53787d..802cb99a96366ace347e30d8434d5a59a64f9cd6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 9748d1481be2e1a9c8974cf5dc1019224b8b5db4..e284267e3eaf1011d36ee53dc41cb724a82383f9 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSummaryRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -119,6 +139,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -135,6 +156,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     FractionGroupSummarySequence(),
     TreatmentSummaryMeasuredDoseReferenceSequence(),
     TreatmentSummaryCalculatedDoseReferenceSequence(),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -145,6 +172,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -175,6 +204,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -190,12 +222,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -229,7 +268,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -249,6 +297,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -271,6 +320,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -287,6 +337,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     FractionGroupSummarySequence(copy.FractionGroupSummarySequence),
     TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence),
     TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -297,6 +353,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -333,6 +391,9 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -348,12 +409,19 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -387,7 +455,16 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -407,6 +484,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -429,6 +507,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -445,6 +524,12 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         FractionGroupSummarySequence = copy.FractionGroupSummarySequence;
         TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence;
         TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -455,6 +540,8 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -486,6 +573,9 @@ void DRTTreatmentSummaryRecordIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -501,12 +591,19 @@ void DRTTreatmentSummaryRecordIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -540,7 +637,16 @@ void DRTTreatmentSummaryRecordIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -560,6 +666,7 @@ void DRTTreatmentSummaryRecordIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -582,6 +689,7 @@ void DRTTreatmentSummaryRecordIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -598,6 +706,12 @@ void DRTTreatmentSummaryRecordIOD::clear()
     FractionGroupSummarySequence.clear();
     TreatmentSummaryMeasuredDoseReferenceSequence.clear();
     TreatmentSummaryCalculatedDoseReferenceSequence.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -608,6 +722,8 @@ void DRTTreatmentSummaryRecordIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -683,6 +799,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -704,6 +821,14 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset)
         TreatmentSummaryMeasuredDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule");
         TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule");
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -715,6 +840,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -751,6 +878,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -766,12 +896,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -827,7 +964,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -864,6 +1010,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -902,6 +1049,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -917,12 +1067,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -967,7 +1124,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -995,6 +1161,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1024,6 +1191,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1045,6 +1213,17 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         if (result.good()) result = TreatmentSummaryMeasuredDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule");
         if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule");
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1056,6 +1235,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1116,7 +1297,16 @@ OFBool DRTTreatmentSummaryRecordIOD::isPatientStudyModulePresent(const OFBool /*
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1146,6 +1336,18 @@ OFBool DRTTreatmentSummaryRecordIOD::isClinicalTrialSeriesModulePresent(const OF
 }
 
 
+OFBool DRTTreatmentSummaryRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTTreatmentSummaryRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1178,6 +1380,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getAdmittingDiagnosesDescription(OFStr
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
@@ -1304,6 +1512,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getDeidentificationMethod(OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1388,6 +1602,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getIssuerOfPatientID(OFString &value,
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1406,6 +1626,36 @@ OFCondition DRTTreatmentSummaryRecordIOD::getManufacturerModelName(OFString &val
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1460,18 +1710,42 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientAge(OFString &value, const s
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1484,6 +1758,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientComments(OFString &value, co
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1532,6 +1812,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientSpeciesDescription(OFString
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1592,6 +1878,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPixelPaddingValue(Uint16 &value, co
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getQualityControlSubject(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(QualityControlSubject, value, pos);
@@ -1712,6 +2004,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getServiceEpisodeID(OFString &value, c
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1742,6 +2040,24 @@ OFCondition DRTTreatmentSummaryRecordIOD::getStationName(OFString &value, const
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -1838,6 +2154,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setAdmittingDiagnosesDescription(const
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2027,6 +2352,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setDeidentificationMethod(const OFStri
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2144,6 +2478,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setIssuerOfPatientID(const OFString &v
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2171,6 +2514,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setManufacturerModelName(const OFStrin
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2252,6 +2622,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientAge(const OFString &value, c
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2261,6 +2640,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2270,6 +2658,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2288,6 +2685,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientComments(const OFString &val
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2351,6 +2757,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientSpeciesDescription(const OFS
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2429,6 +2844,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPixelPaddingValue(const Uint16 valu
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setQualityControlSubject(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2600,6 +3021,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setServiceEpisodeID(const OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2636,6 +3066,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setStationName(const OFString &value,
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
index e9b64a10dccba3bb0341cef919396a4bb7b91708..b30e8e31c2a0ba00cf5f15ee60684a5b664b0e03 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a69c89279b6d4ce01641d618b213a36ac5c9029a..de35e64e5f0dd0bb470f0ab16a1b4454105a3b3e 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSessionIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -27,13 +27,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const OFBool emptyDefaultItem)
     BeamName(DCM_BeamName),
     BeamType(DCM_BeamType),
     CurrentFractionNumber(DCM_CurrentFractionNumber),
+    DeliveredDepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     DeliveredPrimaryMeterset(DCM_DeliveredPrimaryMeterset),
     DeliveredSecondaryMeterset(DCM_DeliveredSecondaryMeterset),
     DeliveredTreatmentTime(DCM_DeliveredTreatmentTime),
+    FixationEye(DCM_FixationEye),
     FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle),
     FixationLightPolarAngle(DCM_FixationLightPolarAngle),
     GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/),
     IonControlPointDeliverySequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    ModulatedScanModeType(DCM_ModulatedScanModeType),
     NumberOfBlocks(DCM_NumberOfBlocks),
     NumberOfBoli(DCM_NumberOfBoli),
     NumberOfCompensators(DCM_NumberOfCompensators),
@@ -83,13 +86,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const Item &copy)
     BeamName(copy.BeamName),
     BeamType(copy.BeamType),
     CurrentFractionNumber(copy.CurrentFractionNumber),
+    DeliveredDepthDoseParametersSequence(copy.DeliveredDepthDoseParametersSequence),
     DeliveredPrimaryMeterset(copy.DeliveredPrimaryMeterset),
     DeliveredSecondaryMeterset(copy.DeliveredSecondaryMeterset),
     DeliveredTreatmentTime(copy.DeliveredTreatmentTime),
+    FixationEye(copy.FixationEye),
     FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle),
     FixationLightPolarAngle(copy.FixationLightPolarAngle),
     GeneralAccessorySequence(copy.GeneralAccessorySequence),
     IonControlPointDeliverySequence(copy.IonControlPointDeliverySequence),
+    ModulatedScanModeType(copy.ModulatedScanModeType),
     NumberOfBlocks(copy.NumberOfBlocks),
     NumberOfBoli(copy.NumberOfBoli),
     NumberOfCompensators(copy.NumberOfCompensators),
@@ -147,13 +153,16 @@ DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::It
         BeamName = copy.BeamName;
         BeamType = copy.BeamType;
         CurrentFractionNumber = copy.CurrentFractionNumber;
+        DeliveredDepthDoseParametersSequence = copy.DeliveredDepthDoseParametersSequence;
         DeliveredPrimaryMeterset = copy.DeliveredPrimaryMeterset;
         DeliveredSecondaryMeterset = copy.DeliveredSecondaryMeterset;
         DeliveredTreatmentTime = copy.DeliveredTreatmentTime;
+        FixationEye = copy.FixationEye;
         FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle;
         FixationLightPolarAngle = copy.FixationLightPolarAngle;
         GeneralAccessorySequence = copy.GeneralAccessorySequence;
         IonControlPointDeliverySequence = copy.IonControlPointDeliverySequence;
+        ModulatedScanModeType = copy.ModulatedScanModeType;
         NumberOfBlocks = copy.NumberOfBlocks;
         NumberOfBoli = copy.NumberOfBoli;
         NumberOfCompensators = copy.NumberOfCompensators;
@@ -210,6 +219,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear()
         RadiationAtomicNumber.clear();
         RadiationChargeState.clear();
         ScanMode.clear();
+        ModulatedScanModeType.clear();
         ReferencedToleranceTableNumber.clear();
         BeamLimitingDeviceLeafPairsSequence.clear();
         ReferencedPatientSetupNumber.clear();
@@ -238,6 +248,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear()
         PatientSupportAccessoryCode.clear();
         FixationLightAzimuthalAngle.clear();
         FixationLightPolarAngle.clear();
+        FixationEye.clear();
         CurrentFractionNumber.clear();
         TreatmentDeliveryType.clear();
         TreatmentTerminationStatus.clear();
@@ -249,6 +260,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear()
         DeliveredSecondaryMeterset.clear();
         SpecifiedTreatmentTime.clear();
         DeliveredTreatmentTime.clear();
+        DeliveredDepthDoseParametersSequence.clear();
         NumberOfControlPoints.clear();
         IonControlPointDeliverySequence.clear();
     }
@@ -266,6 +278,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty()
            RadiationAtomicNumber.isEmpty() &&
            RadiationChargeState.isEmpty() &&
            ScanMode.isEmpty() &&
+           ModulatedScanModeType.isEmpty() &&
            ReferencedToleranceTableNumber.isEmpty() &&
            BeamLimitingDeviceLeafPairsSequence.isEmpty() &&
            ReferencedPatientSetupNumber.isEmpty() &&
@@ -294,6 +307,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty()
            PatientSupportAccessoryCode.isEmpty() &&
            FixationLightAzimuthalAngle.isEmpty() &&
            FixationLightPolarAngle.isEmpty() &&
+           FixationEye.isEmpty() &&
            CurrentFractionNumber.isEmpty() &&
            TreatmentDeliveryType.isEmpty() &&
            TreatmentTerminationStatus.isEmpty() &&
@@ -305,6 +319,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty()
            DeliveredSecondaryMeterset.isEmpty() &&
            SpecifiedTreatmentTime.isEmpty() &&
            DeliveredTreatmentTime.isEmpty() &&
+           DeliveredDepthDoseParametersSequence.isEmpty() &&
            NumberOfControlPoints.isEmpty() &&
            IonControlPointDeliverySequence.isEmpty();
 }
@@ -332,6 +347,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, ScanMode, "1", "1", "TreatmentSessionIonBeamSequence");
+        getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "TreatmentSessionIonBeamSequence");
         BeamLimitingDeviceLeafPairsSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "TreatmentSessionIonBeamSequence");
@@ -360,6 +376,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "TreatmentSessionIonBeamSequence");
+        getAndCheckElementFromDataset(item, FixationEye, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, CurrentFractionNumber, "1", "2", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, TreatmentDeliveryType, "1", "2", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, TreatmentTerminationStatus, "1", "1", "TreatmentSessionIonBeamSequence");
@@ -371,6 +388,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, DeliveredSecondaryMeterset, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, SpecifiedTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, DeliveredTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence");
+        DeliveredDepthDoseParametersSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "TreatmentSessionIonBeamSequence");
         IonControlPointDeliverySequence.read(item, "1-n", "1", "TreatmentSessionIonBeamSequence");
         result = EC_Normal;
@@ -394,6 +412,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "TreatmentSessionIonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "TreatmentSessionIonBeamSequence");
         if (result.good()) result = BeamLimitingDeviceLeafPairsSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "TreatmentSessionIonBeamSequence");
@@ -422,6 +441,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "TreatmentSessionIonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(CurrentFractionNumber), "1", "2", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(TreatmentDeliveryType), "1", "2", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(TreatmentTerminationStatus), "1", "1", "TreatmentSessionIonBeamSequence");
@@ -433,6 +453,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmDecimalString(DeliveredSecondaryMeterset), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(SpecifiedTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(DeliveredTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence");
+        if (result.good()) result = DeliveredDepthDoseParametersSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "TreatmentSessionIonBeamSequence");
         if (result.good()) result = IonControlPointDeliverySequence.write(item, "1-n", "1", "TreatmentSessionIonBeamSequence");
     }
@@ -539,6 +560,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getDeliveredTreatmentTime(
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationEye, value, pos);
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -557,6 +587,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightPolarAngle
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ModulatedScanModeType, value, pos);
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -1026,6 +1065,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setDeliveredTreatmentTime(
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationEye.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -1044,6 +1096,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightPolarAngle
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ModulatedScanModeType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
index c70d66ce5a78ae1113369def868e64c38e3338ff..b9b104e30ef40fa3ae4208a3835e0080f7154dc6 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index bb271cdd0eb9372bd02149997b935c1b8800e138..11fd485aba71c883d9079f5ee15b7b1b80690991 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtudis.cc b/dcmrt/libsrc/drtudis.cc
new file mode 100644 (file)
index 0000000..b48c393
--- /dev/null
@@ -0,0 +1,573 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTUDISequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtudis.h"
+
+
+// --- item class ---
+
+DRTUDISequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    DeviceDescription(DCM_DeviceDescription),
+    UniqueDeviceIdentifier(DCM_UniqueDeviceIdentifier)
+{
+}
+
+
+DRTUDISequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    DeviceDescription(copy.DeviceDescription),
+    UniqueDeviceIdentifier(copy.UniqueDeviceIdentifier)
+{
+}
+
+
+DRTUDISequence::Item::~Item()
+{
+}
+
+
+DRTUDISequence::Item &DRTUDISequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        DeviceDescription = copy.DeviceDescription;
+        UniqueDeviceIdentifier = copy.UniqueDeviceIdentifier;
+    }
+    return *this;
+}
+
+
+void DRTUDISequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        UniqueDeviceIdentifier.clear();
+        DeviceDescription.clear();
+    }
+}
+
+
+OFBool DRTUDISequence::Item::isEmpty()
+{
+    return UniqueDeviceIdentifier.isEmpty() &&
+           DeviceDescription.isEmpty();
+}
+
+
+OFBool DRTUDISequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTUDISequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, UniqueDeviceIdentifier, "1", "1", "UDISequence");
+        getAndCheckElementFromDataset(item, DeviceDescription, "1", "3", "UDISequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmUnlimitedText(UniqueDeviceIdentifier), "1", "1", "UDISequence");
+        addElementToDataset(result, item, new DcmLongString(DeviceDescription), "1", "3", "UDISequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::Item::getDeviceDescription(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(DeviceDescription, value, pos);
+}
+
+
+OFCondition DRTUDISequence::Item::getUniqueDeviceIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(UniqueDeviceIdentifier, value, pos);
+}
+
+
+OFCondition DRTUDISequence::Item::setDeviceDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = DeviceDescription.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::Item::setUniqueDeviceIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = UniqueDeviceIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTUDISequence::DRTUDISequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTUDISequence::DRTUDISequence(const DRTUDISequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTUDISequence &DRTUDISequence::operator=(const DRTUDISequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTUDISequence::~DRTUDISequence()
+{
+    clear();
+}
+
+
+void DRTUDISequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTUDISequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTUDISequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTUDISequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTUDISequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTUDISequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTUDISequence::Item &DRTUDISequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTUDISequence::Item &DRTUDISequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTUDISequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTUDISequence::Item &DRTUDISequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTUDISequence::Item &DRTUDISequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTUDISequence::Item &DRTUDISequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTUDISequence::Item &DRTUDISequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTUDISequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::read(DcmItem &dataset,
+                                 const OFString &card,
+                                 const OFString &type,
+                                 const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_UDISequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_UDISequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTUDISequence::write(DcmItem &dataset,
+                                  const OFString &card,
+                                  const OFString &type,
+                                  const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_UDISequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
index 3694971a8218259f88562ca5532f69fb251a27b3..4e5afb76461202fe4571746fb8a864fbdfaa6b12 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTVOILUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 3ccbe58f6930a3b1984478605d9709db068096a5..b96acb504dc05d9c18b66eba8af825bdf9f53851 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index bac1256008b212fdff625f6d71bb90d2b805866a..292e736fe9ff5f8acbb996393ae1047c8a067ed8 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWADORetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index c2a748b908510fd1ff75841c1c57d164f437bbec..666be36c86148eb95f2e15ec10ff9bfd33f90a98 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWADORSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 99b9f5281aef819af502c4f940bbb0b0c40fbf01..05e0b82bf608e8fad2cd757bf4fec1cd06243165 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index a9fffff71ddd56fc734bb083d936b3f4d92097a2..17e47324fe69cd2d346b6f1d1d30430bd82c211a 100644 (file)
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTXDSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
index 8535fc6d7fa1ad7d2995afebf30a8c6125d4a10e..9e87cb0f52c132a0d007e958826601c69104b085 100644 (file)
@@ -118,7 +118,8 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
@@ -128,16 +129,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -151,17 +153,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -183,9 +185,13 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtssrs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \
  ../include/dcmtk/dcmrt/seq/drtcbars.h \
  ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
  ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \
@@ -194,8 +200,9 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
  ../include/dcmtk/dcmrt/seq/drtmacds.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+ ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \
  ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \
  ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
  ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
@@ -225,10 +232,11 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
  ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \
  ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \
  ../include/dcmtk/dcmrt/seq/drtfgss.h \
@@ -419,27 +427,30 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
  ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
  ../include/dcmtk/dcmrt/seq/drtbvcps.h \
  ../include/dcmtk/dcmrt/seq/drtrbas8.h \
  ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
  ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
  ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
@@ -455,8 +466,11 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -466,15 +480,19 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../include/dcmtk/dcmrt/seq/drttts.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drttms9.h
+ ../include/dcmtk/dcmrt/seq/drttms9.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
index 5e70154c7bfd2bbd4bb93cf4a52c78dabdffecce..1e0de33b9481557eecdb871ad76f8eb4d20cef49 100644 (file)
@@ -26,6 +26,7 @@
 #include "dcmtk/ofstd/ofvector.h"               // for OFVector
 #include "dcmtk/dcmiod/iodimage.h"              // common image IOD attribute access
 #include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmiod/modimagepixel.h"
 #include "dcmtk/dcmiod/modsegmentationseries.h" // for segmentation series module
 #include "dcmtk/dcmiod/modenhequipment.h"       // for enhanced general equipment module
 
@@ -48,7 +49,7 @@ class FGDerivationImage;
 /** Class representing an object of the "Segmentation SOP Class".
  */
 class DCMTK_DCMSEG_EXPORT DcmSegmentation
-: public DcmIODImage
+: public DcmIODImage<IODImagePixelModule<Uint8> >
 {
 
 public:
@@ -61,7 +62,7 @@ public:
 
   // -------------------- loading and saving ---------------------
 
-  /** Load Segmentation object from item file
+  /** Load Segmentation object from file
    *  @param  filename The file to read from
    *  @param  segmentation  The resulting segmentation object. NULL if dataset
    *          could not be read successfully.
@@ -70,7 +71,7 @@ public:
   static OFCondition loadFile(const OFString& filename,
                               DcmSegmentation*& segmentation);
 
-  /** Load Segmentation object from item object.
+  /** Load Segmentation object from dataset object.
    *  @param  dataset The dataset to read from
    *  @param  segmentation  The resulting segmentation object. NULL if dataset
    *          could not be read successfully.
@@ -146,22 +147,6 @@ public:
   static FGDerivationImage* createDerivationImageFG(const OFVector<ImageSOPInstanceReferenceMacro>& derivationImages,
                                                     const OFString& derivationDescription);
 
-  /** Take over general information for Patient, Study, Series and/or Frame of Reference
-   *  from existing file
-   *  @param  filename The filename to read from
-   *  @param  usePatient If OFTrue, Patient level information is imported
-   *  @param  useStudy If OFTrue, Study level information is imported
-   *  @param  useSeries If OFTrue, Series level information is imported
-   *  @param  useFoR If OFTrue, Frame of Reference information is imported
-   *  @return EC_Normal if reading was successful (i.e.\ if any information could
-   *          be read), otherwise an error is returned
-   */
-  OFCondition importPatientStudyFoR(const OFString& filename,
-                                    const OFBool usePatient,
-                                    const OFBool useStudy,
-                                    const OFBool useSeries,
-                                    const OFBool useFoR = OFFalse);
-
   // -------------------- access ---------------------
 
   /** Get number of frames, based on the number of items in the shared
@@ -273,7 +258,7 @@ public:
                                  Uint16& segmentNumber);
 
   /** Add a functional group for all frames
-   *  @param  group The group to be added as shared functional group
+   *  @param  group The group to be added as shared functional group. The
    *  @return EC_Normal if adding was successful, error otherwise
    */
   virtual OFCondition addForAllFrames(const FGBase& group);
@@ -287,7 +272,9 @@ public:
    *  @param  segmentNumber The logical segment number (>=1) this frame refers to.
    *          The segment identified by the segmentNumber must already exist.
    *  @param  perFrameInformation The functional groups that identify this frame (i.e.
-   *           which are planned to be not common for all other frames)
+   *          which are planned to be not common for all other frames). The
+   *          functional groups are copied, so ownership of each group stays
+   *          with the caller no matter what the method returns.
    *  @return EC_Normal if adding was successful, error otherwise
    */
   virtual OFCondition addFrame(Uint8* pixData,
@@ -373,7 +360,7 @@ protected:
   *  the image pixel module manually.
   *  @return The Image Pixel Module
   */
-  virtual IODImagePixelModule& getImagePixel();
+  virtual IODImagePixelModule<Uint8>& getImagePixel();
 
   /** Initialize IOD rules
    */
index a9ee8fbf3c7cea09d5a8fc67ab69bdaa98f281c0..f0a3addabd1ae8de863d7b5ca12cf322f3f4b160 100644 (file)
@@ -10,13 +10,17 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmseg/segdoc.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
@@ -123,7 +127,6 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
@@ -133,6 +136,8 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
  ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
  ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
@@ -212,6 +217,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -244,11 +251,9 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -279,11 +284,14 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \
  ../include/dcmtk/dcmseg/segdoc.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
@@ -292,6 +300,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
  ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
  ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
@@ -362,6 +372,8 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -392,11 +404,9 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
index 2261fc9b6fb0b7a06a7b0e56914ade350c40b711..fcf7338a397878ea1fadc5779d3ed2ef26c512ce 100644 (file)
 
 // default constructor (protected, instance creation via create() function)
 DcmSegmentation::DcmSegmentation()
-: DcmIODImage(),
-  m_SegmentationSeries(DcmIODImage::getData(), DcmIODImage::getRules()),
-  m_EnhancedGeneralEquipmentModule(DcmIODImage::getData(), DcmIODImage::getRules()),
-  m_FG(DcmIODImage::getData(), DcmIODImage::getRules()),
-  m_DimensionModule(DcmIODImage::getData(), DcmIODImage::getRules()),
+: DcmSegmentation::IODImage(OFin_place<IODImagePixelModule<Uint8> >),
+  m_SegmentationSeries(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
+  m_EnhancedGeneralEquipmentModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
+  m_FG(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
+  m_DimensionModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
   m_Frames(),
   m_ImageType("DERIVED\\PRIMARY"),
   m_ContentIdentificationMacro(),
@@ -182,15 +182,8 @@ OFCondition DcmSegmentation::createCommon(DcmSegmentation*& segmentation,
       segmentation = NULL;
       return EC_InvalidValue;
     }
-    OFDate date;
-    date.setCurrentDate();
-    date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */);
-    segmentation->getGeneralImage().setContentDate(tempstr);
-    OFTime time;
-    time.setCurrentTime();
-    time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse);
-    segmentation->getGeneralImage().setContentTime(tempstr);
 
+    DcmIODUtil::setContentDateAndTimeNow(segmentation->getGeneralImage());
     result = segmentation->setEquipmentInfo(equipmentInfo, OFTrue /* check */);
   }
 
@@ -227,7 +220,7 @@ OFCondition DcmSegmentation::read(DcmItem &dataset)
   }
 
   // Read attributes in base classes
-  DcmIODImage::read(dataset);
+  DcmSegmentation::IODImage::read(dataset);
 
   // Read Segmentation Series Module
   m_SegmentationSeries.read(dataset);
@@ -309,37 +302,12 @@ OFCondition DcmSegmentation::write(DcmItem &dataset)
   // Multi-frame Functional Groups Module (except functional groups itself)
   // SOP Common Module
   // Common Instance Reference Module
-  if (result.good()) result = DcmIODImage::write(dataset);
+  if (result.good()) result = DcmSegmentation::IODImage::write(dataset);
 
   return result;
 }
 
 
-OFCondition DcmSegmentation::importPatientStudyFoR(const OFString& filename,
-                                                   const OFBool usePatient,
-                                                   const OFBool useStudy,
-                                                   const OFBool useSeries,
-                                                   const OFBool useFoR)
-{
-  DcmFileFormat dcmff;
-  OFCondition result = dcmff.loadFile(filename.c_str());
-  if ( result.good() )
-  {
-    DcmDataset *dset = dcmff.getDataset();
-    if (dset != NULL)
-    {
-      result = import(*dset, usePatient, useStudy, useSeries, useFoR);
-    }
-    else
-    {
-      DCMSEG_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information");
-      result = EC_IllegalCall;
-    }
-  }
-  return result;
-}
-
-
 FGInterface& DcmSegmentation::getFunctionalGroups()
 {
   return m_FGInterface;
@@ -361,7 +329,7 @@ size_t DcmSegmentation::getNumberOfSegments()
 
 IODGeneralEquipmentModule& DcmSegmentation::getEquipment()
 {
-  return DcmIODImage::getEquipment();
+  return DcmSegmentation::IODImage::getEquipment();
 }
 
 
@@ -1036,7 +1004,7 @@ OFCondition DcmSegmentation::writeSegmentationImageModule(DcmItem& dataset)
 
 void DcmSegmentation::clearData()
 {
-  DcmIODImage::clearData();
+  DcmSegmentation::IODImage::clearData();
   m_FG.clearData();
   m_FGInterface.clear();
   DcmIODUtil::freeContainer(m_Frames);
@@ -1180,9 +1148,9 @@ OFCondition DcmSegmentation::readSegmentationType(DcmItem& item)
 
 
 // protected override of public base class function
-IODImagePixelModule& DcmSegmentation::getImagePixel()
+IODImagePixelModule<Uint8>& DcmSegmentation::getImagePixel()
 {
-  return DcmIODImage::getImagePixel();
+  return *OFget<IODImagePixelModule<Uint8> >( &DcmSegmentation::IODImage::getImagePixel() );
 }
 
 
@@ -1253,7 +1221,7 @@ OFCondition DcmSegmentation::decompress(DcmDataset& dset)
     }
     else // We do not accept any transfer syntax that could be lossy compressed
     {
-      DCMSEG_ERROR("No conversion from RLE original to uncompressed transfer syntax possible!");
+      DCMSEG_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Segmentation objects!");
       result = IOD_EC_CannotDecompress;
     }
   }
index 9937499c9ecf6a90297ab168de2befeac785482b..d6fae3e77907fc61711af441df63e321b50d1a7d 100644 (file)
@@ -175,13 +175,22 @@ int main(int argc, char *argv[])
             opt_readFlags |= DSRTypes::XF_useDcmsrNamespace;
 
         if (cmd.findOption("--generate-new-uids"))
+        {
             opt_generateUIDs = OFTrue;
+            opt_readFlags |= DSRTypes::XF_acceptEmptyStudySeriesInstanceUID;
+        }
 
         cmd.beginOptionBlock();
         if (cmd.findOption("--dont-overwrite-uids"))
+        {
+            app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFFalse;
+        }
         if (cmd.findOption("--overwrite-uids"))
+        {
+            app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFTrue;
+        }
         cmd.endOptionBlock();
 
         /* output options */
index a57f9159879f93d0a2dfc6919dbbff9532f15f12..4f10a96945892b3ebe2a6ca704f797afc139aa00 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID100_QuantitativeDiagnosticImagingProcedures
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:37 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:46 by J. Riesmeier
  *
  */
 
index 8f143faf1132912b368e2564da8fa922c1cc2829..d92349fe4eb524fe2a08e02f83e84a166e1bf00b 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID10013_CTAcquisitionType
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:00 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:09 by J. Riesmeier
  *
  */
 
index 6402909fdf8d4a37f6beab683e5f919a1fdf5dcc..6c5f88e834871ed15e862b7214b66b75af772846 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID10033_CTReconstructionAlgorithm
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:02 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:11 by J. Riesmeier
  *
  */
 
index f32990e576143de7bbec5eff9e8c8302dbb2da50..e8f2a798f503cfb966fbd81aea13416547d9e067 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID11_RouteOfAdministration
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:32 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:40 by J. Riesmeier
  *
  */
 
index d7a2c452b3c0b49a9d420ff7644ae6e06964a312..ccebd5211d13c7c56e4b49249eb175bc8cae1413 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID244_Laterality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:38 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:47 by J. Riesmeier
  *
  */
 
index dc9f3835767e195e4e8a0887c73cdeffed4ccf37..4b862e96862e0a2ed723901cffc78c5b5c4217ec 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID29_AcquisitionModality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:33 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:42 by J. Riesmeier
  *
  */
 
index bf39d9295cec9addcb9038321898df7ea55cc775..c58943f33874768f86bfec82e1d341991d0a5055 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID4020_PETRadionuclide
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:40 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:49 by J. Riesmeier
  *
  */
 
index 72c4b033a51ada39ce2f5feaa2194db4577e7498..6a778589a47add5146ca64845e74bb69d507997c 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID4021_PETRadiopharmaceutical
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:42 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:51 by J. Riesmeier
  *
  */
 
index 55b26ac2e56cb0052c7fbb00865c748225a0c78f..df2701740f553b17243a135e9be4e746ebdd964e 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID4031_CommonAnatomicRegions
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:44 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:53 by J. Riesmeier
  *
  */
 
index da14b723b287c237cc8a2239880127d17f87a191..581d5f72634cf0cd4e221995452a094dbd893f0d 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID42_NumericValueQualifier
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:35 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:44 by J. Riesmeier
  *
  */
 
index 66ef949994f262ff8656d5b04624caf94fca6ac6..017579889d68aaa857aae738bdbbacbb09bb485a 100644 (file)
@@ -40,29 +40,29 @@ class DCMTK_CMR_EXPORT CID5000_Languages
      */
     enum EnumType
     {
-        /// (eng,IETF4646,"English")
+        /// (eng,RFC5646,"English")
         English,
-        /// (en-CA,IETF4646","English (CA)")
+        /// (en-CA,RFC5646,"English (CA)")
         English_CA,
-        /// (en-GB,IETF4646","English (GB)")
+        /// (en-GB,RFC5646,"English (GB)")
         English_GB,
-        /// (en-US,IETF4646","English (US)")
+        /// (en-US,RFC5646,"English (US)")
         English_US,
-        /// (fra,IETF4646","French")
+        /// (fra,RFC5646,"French")
         French,
-        /// (fr-CA,IETF4646","French (CA)")
+        /// (fr-CA,RFC5646,"French (CA)")
         French_CA,
-        /// (fr-CH,IETF4646","French (CH)")
+        /// (fr-CH,RFC5646,"French (CH)")
         French_CH,
-        /// (fr-FR,IETF4646","French (FR)")
+        /// (fr-FR,RFC5646,"French (FR)")
         French_FR,
-        /// (deu,IETF4646","German")
+        /// (deu,RFC5646,"German")
         German,
-        /// (de-AT,IETF4646","German (AT)")
+        /// (de-AT,RFC5646,"German (AT)")
         German_AT,
-        /// (de-CH,IETF4646","German (CH)")
+        /// (de-CH,RFC5646,"German (CH)")
         German_CH,
-        /// (de-DE,IETF4646","German (DE)")
+        /// (de-DE,RFC5646,"German (DE)")
         German_DE
     };
 
index 911538bef710f187f9ec65479228a8790d3c5851..792fbc4344a9d4115d4daf0f2f88dc3d5ecb9848 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID6147_ResponseCriteria
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:45 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:55 by J. Riesmeier
  *
  */
 
index 04867c6b650cb51d3f6f6d84f17593fa583e2e2c..05eb16d01de1e5fc7bb86ba4f9dab08133b26678 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7021_MeasurementReportDocumentTitles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:47 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:56 by J. Riesmeier
  *
  */
 
index 95ffa0c79e796dfd73c81c8add9cacb3b384b3ec..ce54d9d5859dea2da37170ae0ac62212cf4a605c 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:49 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:58 by J. Riesmeier
  *
  */
 
index 6b3e3a5593c80efdabc9ab7a0d4b595c394d7525..b8e3a09c5ceeaa0d448bf5180dffa71e27a70601 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7445_DeviceParticipatingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:51 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:00 by J. Riesmeier
  *
  */
 
index 7e937d03930d2609adcfdab9a8fee3462d8422a3..479070c88463d0e9ed946b5435b0fa41acfbb0b2 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7452_OrganizationalRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:53 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:02 by J. Riesmeier
  *
  */
 
index c259b373263a99d27fee0cea914052e08cbac6ff..136104095be334f775cbd4db58a915d895485002 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7453_PerformingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:55 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:03 by J. Riesmeier
  *
  */
 
index df4c815be1da21bb750d530c68db470d63f5e25d..33a8797c399d275bbeabb5baf8256231712640aa 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7464_GeneralRegionOfInterestMeasurementModifiers
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:57 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:05 by J. Riesmeier
  *
  */
 
index dd60c968b527c5c79a5ff35519600807ff280d4a..84055891f72152b83b126e25cad192cc72aeb3fd 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7469_GenericIntensityAndSizeMeasurements
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:59 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:07 by J. Riesmeier
  *
  */
 
index 960c0df3469d66eddb5876ed70fac9fb301b2682..a0072d03534bc6bddd1584794980f46a3106634e 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file with DICOM Code Definitions (Coding Scheme "DCM", Version "01")
  *
- *  Generated automatically from DICOM PS 3.16-2016c
- *  File created on 2016-06-13 09:53:55 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 11:50:13 by J. Riesmeier
  *
  */
 
@@ -33,7 +33,7 @@
  *  code definitions  *
  *--------------------*/
 
-// total number of codes: 3400
+// total number of codes: 3471
 // - retired: 143
 // - no name: 27
 // - not unique: 14
 #define CODE_DCM_VascularImagingSpecialty                                  DSRBasicCodedEntry("128017", "DCM", "Vascular Imaging Specialty")
 #define CODE_DCM_FWPByGA_Campbell_1991                                     DSRBasicCodedEntry("128040", "DCM", "FWP by GA, Campbell, 1991")
 #define CODE_DCM_FWPByGA_Hadlock_1991                                      DSRBasicCodedEntry("128041", "DCM", "FWP by GA, Hadlock, 1991")
+#define CODE_DCM_PlaneThroughSuperiorExtent                                DSRBasicCodedEntry("128120", "DCM", "Plane through Superior Extent")
+#define CODE_DCM_PlaneThroughInferiorExtent                                DSRBasicCodedEntry("128121", "DCM", "Plane through Inferior Extent")
+#define CODE_DCM_PlaneThroughProximalExtent                                DSRBasicCodedEntry("128122", "DCM", "Plane through Proximal Extent")
+#define CODE_DCM_PlaneThroughDistalExtent                                  DSRBasicCodedEntry("128123", "DCM", "Plane through Distal Extent")
+#define CODE_DCM_PlaneThroughMedialExtent                                  DSRBasicCodedEntry("128124", "DCM", "Plane through Medial Extent")
+#define CODE_DCM_PlaneThroughLateralExtent                                 DSRBasicCodedEntry("128125", "DCM", "Plane through Lateral Extent")
+#define CODE_DCM_PlaneThroughLeftmostExtent                                DSRBasicCodedEntry("128126", "DCM", "Plane through Leftmost Extent")
+#define CODE_DCM_PlaneThroughRightmostExtent                               DSRBasicCodedEntry("128127", "DCM", "Plane through Rightmost Extent")
+#define CODE_DCM_PlaneThroughAnteriorExtent                                DSRBasicCodedEntry("128128", "DCM", "Plane through Anterior Extent")
+#define CODE_DCM_PlaneThroughPosteriorExtent                               DSRBasicCodedEntry("128129", "DCM", "Plane through Posterior Extent")
+#define CODE_DCM_PlaneThroughCenter                                        DSRBasicCodedEntry("128130", "DCM", "Plane through Center")
+#define CODE_DCM_GeometricCenterpoint                                      DSRBasicCodedEntry("128137", "DCM", "Geometric Centerpoint")
+#define CODE_DCM_CenterOfMass                                              DSRBasicCodedEntry("128138", "DCM", "Center of Mass")
+#define CODE_DCM_ImpairedRenalFunction                                     DSRBasicCodedEntry("128144", "DCM", "Impaired Renal Function")
+#define CODE_DCM_LaserCrossHairs                                           DSRBasicCodedEntry("128151", "DCM", "Laser Cross-hairs")
+#define CODE_DCM_AcquiredVolume                                            DSRBasicCodedEntry("128160", "DCM", "Acquired Volume")
+#define CODE_DCM_AbdominalRadiology                                        DSRBasicCodedEntry("128170", "DCM", "Abdominal Radiology")
+#define CODE_DCM_BiomedicalEngineering                                     DSRBasicCodedEntry("128171", "DCM", "Biomedical Engineering")
+#define CODE_DCM_CardiovascularRadiology                                   DSRBasicCodedEntry("128172", "DCM", "Cardiovascular Radiology")
+#define CODE_DCM_InformationTechnology                                     DSRBasicCodedEntry("128173", "DCM", "Information Technology")
+#define CODE_DCM_MedicalPhysics                                            DSRBasicCodedEntry("128174", "DCM", "Medical Physics")
+#define CODE_DCM_MusculoskeletalRadiology                                  DSRBasicCodedEntry("128175", "DCM", "Musculoskeletal Radiology")
+#define CODE_DCM_PediatricRadiology                                        DSRBasicCodedEntry("128177", "DCM", "Pediatric Radiology")
+#define CODE_DCM_ThoracicRadiology                                         DSRBasicCodedEntry("128179", "DCM", "Thoracic Radiology")
+#define CODE_DCM_ForRTWorkflow                                             DSRBasicCodedEntry("128180", "DCM", "For RT Workflow")
+#define CODE_DCM_DiagnosticSourceImages                                    DSRBasicCodedEntry("128181", "DCM", "Diagnostic Source Images")
+#define CODE_DCM_SegmentationResult                                        DSRBasicCodedEntry("128182", "DCM", "Segmentation Result")
+#define CODE_DCM_RegistrationResult                                        DSRBasicCodedEntry("128183", "DCM", "Registration Result")
+#define CODE_DCM_PrePlanningResult                                         DSRBasicCodedEntry("128184", "DCM", "Pre-Planning Result")
+#define CODE_DCM_RTPrescriptionResult                                      DSRBasicCodedEntry("128185", "DCM", "RT Prescription Result")
+#define CODE_DCM_DoseCalculationImageSeries                                DSRBasicCodedEntry("128186", "DCM", "Dose Calculation Image Series")
+#define CODE_DCM_CoordinateAlignmentImageSeries                            DSRBasicCodedEntry("128187", "DCM", "Coordinate Alignment Image Series")
+#define CODE_DCM_RTTreatmentSimulationResult                               DSRBasicCodedEntry("128188", "DCM", "RT Treatment Simulation Result")
+#define CODE_DCM_RTPlanningResult                                          DSRBasicCodedEntry("128189", "DCM", "RT Planning Result")
+#define CODE_DCM_DosimetricResult                                          DSRBasicCodedEntry("128190", "DCM", "Dosimetric Result")
+#define CODE_DCM_PatientSetupVerificationResult                            DSRBasicCodedEntry("128191", "DCM", "Patient Setup Verification Result")
+#define CODE_DCM_RTTreatmentSessionResult                                  DSRBasicCodedEntry("128192", "DCM", "RT Treatment Session Result")
+#define CODE_DCM_RTTreatmentCourseSummary                                  DSRBasicCodedEntry("128193", "DCM", "RT Treatment Course Summary")
+#define CODE_DCM_RTTreatmentQAResult                                       DSRBasicCodedEntry("128194", "DCM", "RT Treatment QA Result")
+#define CODE_DCM_ForDiagnosis                                              DSRBasicCodedEntry("128195", "DCM", "For Diagnosis")
+#define CODE_DCM_ForSegmentation                                           DSRBasicCodedEntry("128196", "DCM", "For Segmentation")
+#define CODE_DCM_ForRTPrescription                                         DSRBasicCodedEntry("128197", "DCM", "For RT Prescription")
+#define CODE_DCM_ForRTTreatmentPlanning                                    DSRBasicCodedEntry("128198", "DCM", "For RT Treatment Planning")
+#define CODE_DCM_ForPlanComparison                                         DSRBasicCodedEntry("128199", "DCM", "For Plan Comparison")
+#define CODE_DCM_ForRTPlanSummation                                        DSRBasicCodedEntry("128200", "DCM", "For RT Plan Summation")
+#define CODE_DCM_ForPhysicianReview                                        DSRBasicCodedEntry("128201", "DCM", "For Physician Review")
+#define CODE_DCM_ForPhysicistReview                                        DSRBasicCodedEntry("128202", "DCM", "For Physicist Review")
+#define CODE_DCM_ForTumorBoard                                             DSRBasicCodedEntry("128203", "DCM", "For Tumor Board")
+#define CODE_DCM_ForPlanQualityAssurance                                   DSRBasicCodedEntry("128204", "DCM", "For Plan Quality Assurance")
+#define CODE_DCM_ForMachineQualityAssurance                                DSRBasicCodedEntry("128205", "DCM", "For Machine Quality Assurance")
+#define CODE_DCM_ForPatientSetupVerification                               DSRBasicCodedEntry("128206", "DCM", "For Patient Setup Verification")
+#define CODE_DCM_ForClinicalTrialSubmission                                DSRBasicCodedEntry("128207", "DCM", "For Clinical Trial Submission")
+#define CODE_DCM_ForTumorRegistry                                          DSRBasicCodedEntry("128208", "DCM", "For Tumor Registry")
+#define CODE_DCM_RTWorkflowInputUsed                                       DSRBasicCodedEntry("128209", "DCM", "RT Workflow Input Used")
+#define CODE_DCM_RTPrescriptionInputUsed                                   DSRBasicCodedEntry("128210", "DCM", "RT Prescription Input Used")
+#define CODE_DCM_RTTreatmentPlanningInputUsed                              DSRBasicCodedEntry("128211", "DCM", "RT Treatment Planning Input Used")
+#define CODE_DCM_RTPlanSummationInputUsed                                  DSRBasicCodedEntry("128212", "DCM", "RT Plan Summation Input Used")
+#define CODE_DCM_PhysicianReviewInputUsed                                  DSRBasicCodedEntry("128213", "DCM", "Physician Review Input Used")
+#define CODE_DCM_PhysicistReviewInputUsed                                  DSRBasicCodedEntry("128214", "DCM", "Physicist Review Input Used")
+#define CODE_DCM_PlanQualityAssuranceInputUsed                             DSRBasicCodedEntry("128215", "DCM", "Plan Quality Assurance Input Used")
+#define CODE_DCM_MachineQualityAssuranceInputUsed                          DSRBasicCodedEntry("128216", "DCM", "Machine Quality Assurance Input Used")
+#define CODE_DCM_PatientSetupVerificationInputUsed                         DSRBasicCodedEntry("128217", "DCM", "Patient Setup Verification Input Used")
+#define CODE_DCM_DiagnosisInputUsed                                        DSRBasicCodedEntry("128218", "DCM", "Diagnosis Input Used")
+#define CODE_DCM_ContouringInputUsed                                       DSRBasicCodedEntry("128219", "DCM", "Contouring Input Used")
+#define CODE_DCM_PlanComparisonInputUsed                                   DSRBasicCodedEntry("128220", "DCM", "Plan Comparison Input Used")
+#define CODE_DCM_TumorBoardInputUsed                                       DSRBasicCodedEntry("128221", "DCM", "Tumor Board Input Used")
+#define CODE_DCM_TumorRegistryInputUsed                                    DSRBasicCodedEntry("128222", "DCM", "Tumor Registry Input Used")
+#define CODE_DCM_ClinicalTrialSubmissionInputUsed                          DSRBasicCodedEntry("128223", "DCM", "Clinical Trial Submission Input Used")
+#define CODE_DCM_SourceMeasurement                                         DSRBasicCodedEntry("128224", "DCM", "Source measurement")
+#define CODE_DCM_SourceReport                                              DSRBasicCodedEntry("128225", "DCM", "Source report")
+#define CODE_DCM_SourceRawData                                             DSRBasicCodedEntry("128226", "DCM", "Source raw data")
 
 #endif
index c917a164430ef459d4c3e8cfb5337b7ffe28d5de..995f73e243f0fa2f87ef5517bf3e1f8096ae4f14 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file with NCIt Code Definitions (Coding Scheme "NCIt")
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:08:01 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 11:50:21 by J. Riesmeier
  *
  */
 
index b7ef28e752675a5142f422d08a4a656408b643e4..6d6a387560d58296161a8dc79bcd2d87779e4fcc 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Header file with UMLS Code Definitions (Coding Scheme "UMLS")
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:08:00 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 11:50:20 by J. Riesmeier
  *
  */
 
@@ -33,7 +33,7 @@
  *  code definitions  *
  *--------------------*/
 
-// total number of codes: 39
+// total number of codes: 40
 // - retired: 0
 // - no name: 0
 // - not unique: 0
@@ -77,6 +77,7 @@
 #define CODE_UMLS_Tyrosine3Octreotate_Ga68                                 DSRBasicCodedEntry("C1742831", "UMLS", "tyrosine-3-octreotate Ga^68^")
 #define CODE_UMLS_Fluoroestradiol_FES_F18                                  DSRBasicCodedEntry("C1831937", "UMLS", "Fluoroestradiol (FES) F^18^")
 #define CODE_UMLS_Sonographer                                              DSRBasicCodedEntry("C1954848", "UMLS", "Sonographer")
+#define CODE_UMLS_Neuroradiology                                           DSRBasicCodedEntry("C2183225", "UMLS", "Neuroradiology")
 #define CODE_UMLS_InverseRatioVentilation                                  DSRBasicCodedEntry("C2223982", "UMLS", "Inverse ratio ventilation")
 #define CODE_UMLS_RootMeanSquare                                           DSRBasicCodedEntry("C2347976", "UMLS", "Root Mean Square")
 #define CODE_UMLS_TimePoint                                                DSRBasicCodedEntry("C2348792", "UMLS", "Time Point")
index 467dd3868b48aeb96533fa7625d380b6269ba3e4..a5a8f0aa1646345d184df7d67a053e4cac1ef53f 100644 (file)
@@ -726,6 +726,10 @@ class DCMTK_DCMSR_EXPORT DSRCodedEntryValue
     OFString ContextUID;
     /// Mapping Resource (VR=CS, type 1C)
     OFString MappingResource;
+    /// Mapping Resource UID (VR=UI, type 3)
+     // - tbd: optional attribute not yet supported
+    /// Mapping Resource Name (VR=LO, type 3)
+     // - tbd: optional attribute not yet supported
     /// Context Group Version (VR=DT, type 1C)
     OFString ContextGroupVersion;
     /// Context Group Local Version (VR=DT, type 1C)
index 3a0df65e81d0d491a22145c28df522fc5126a7e9..efb6f3fa8e7e93cd4a6bfb07f97f97c8cb223e74 100644 (file)
@@ -1230,6 +1230,10 @@ class DCMTK_DCMSR_EXPORT DSRDocument
     DcmUniqueIdentifier InstanceCreatorUID;
     /// Coding Scheme Identification Sequence: (SQ, 1-n, 3)
     DSRCodingSchemeIdentificationList CodingSchemeIdentification;
+    /// Context Group Identification Sequence: (SQ, 1-n, 3)
+     // - tbd: optional attribute not yet supported
+    /// Mapping Resource Identification Sequence: (SQ, 1-n, 3)
+     // - tbd: optional attribute not yet supported
 
     // --- General Study Module (M) ---
 
index 1d4d2f0e0eb370c171cbe54855dc61ba75a4eb92..7152c0a678e17d5aa8910ad25e73fb1c41883590 100644 (file)
@@ -139,7 +139,7 @@ class DCMTK_DCMSR_EXPORT DSRSOPInstanceReferenceList
                         const OFBool check = OFTrue);
 
     /** add item from specified DICOM dataset to the list of references.
-     *  Internally an item representing the given dataset is inserted into the hierarchical
+     *  Internally, an item representing the given dataset is inserted into the hierarchical
      *  structure of studies, series and instances, if not already contained in the list.
      *  In any case, the specified item is selected as the current one.
      ** @param  dataset  reference to DICOM dataset from which the relevant UIDs are retrieved
index ed58b35986fb9e2b05ce4a86b9365e892b0e04ff..21e944687b45ef0ffa299d558f59221ab5c3b85d 100644 (file)
@@ -29,6 +29,7 @@
 #include "dcmtk/dcmdata/dcerror.h"
 
 #include "dcmtk/ofstd/oflist.h"
+#include "dcmtk/ofstd/ofvector.h"
 
 
 /*---------------------*
@@ -148,6 +149,32 @@ template<class T> class DSRListOfItems
         return result;
     }
 
+    /** get copy of all items (as a vector)
+     ** @param  items  reference to a variable where the result should be stored.
+     *                 (always cleared before items are added)
+     ** @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItems(OFVector<T> &items) const
+    {
+        items.clear();
+        if (!ItemList.empty())
+        {
+            /* avoid re-allocations */
+            items.reserve(ItemList.size());
+            /* iterate over all list items */
+            const OFLIST_TYPENAME OFListConstIterator(T) endPos = ItemList.end();
+            OFLIST_TYPENAME OFListConstIterator(T) iterator = ItemList.begin();
+            while (iterator != endPos)
+            {
+                /* and copy them to the passed vector */
+                items.push_back(*iterator);
+                iterator++;
+            }
+        }
+        /* always return OK */
+        return EC_Normal;
+    }
+
     /** add item to the list
      ** @param  item  item to be added
      */
@@ -165,6 +192,20 @@ template<class T> class DSRListOfItems
             ItemList.push_back(item);
     }
 
+    /** add items to the list
+     ** @param  items  items to be added (stored as a vector)
+     */
+    inline void addItems(const OFVector<T> &items)
+    {
+        const OFTypename OFVector<T>::const_iterator endPos = items.end();
+        OFTypename OFVector<T>::const_iterator iterator = items.begin();
+        while (iterator != endPos)
+        {
+            ItemList.push_back(*iterator);
+            iterator++;
+        }
+    }
+
     /** insert item at specified position to the list
      ** @param  idx   index of the item before the new one should be inserted (starting from 1)
      *  @param  item  item to be inserted
index 5ba54ad11392da2356b52fb9314d1a7dbebb143f..21cb147f3dae4adafc7f4271ca6326e3cb452ae5 100644 (file)
@@ -396,6 +396,9 @@ class DCMTK_DCMSR_EXPORT DSRTypes
     /// write: add comments with details at beginning/end of included template (might be useful for debugging purposes)
     static const size_t XF_addCommentsForIncludedTemplate;
 
+    /// read: accept empty Study/Series/SOP Instance UID attribute values (must be filled later)
+    static const size_t XF_acceptEmptyStudySeriesInstanceUID;
+
     /// shortcut: combines all XF_xxxAsAttribute write flags (see above)
     static const size_t XF_encodeEverythingAsAttribute;
     //@}
index 871e90982cac806f54d314d23c77383e1f9c73fc..9da2add598cd8212cc5cd4950205d363888a1c0b 100644 (file)
@@ -242,6 +242,13 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument
      */
     void printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const;
 
+    /** print warning message for missing attribute
+     ** @param  cursor  cursor pointing to the relevant node
+     *  @param  name    name of the XML attribute
+     */
+    void printMissingAttributeWarning(const DSRXMLCursor &cursor,
+                                      const char *name) const;
+
     /** print general node error message
      ** @param  cursor  cursor pointing to the unexpected node
      *  @param  result  status used to print details on the error (no message if EC_Normal)
index 7e8997726314181546f8942a1f1e3093b8936e6f..245d9e805a97035a86a6070aa1b42c1135d4b5f2 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID100_QuantitativeDiagnosticImagingProcedures
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:37 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:46 by J. Riesmeier
  *
  */
 
index 39eec59a1c95b05918a892f56e63fdafb34e9108..5630fe2da3be91d4fbb7211c3157de5689eb5350 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID10013_CTAcquisitionType
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:00 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:09 by J. Riesmeier
  *
  */
 
index 7ebbee8c3a89bda354e1c73dd8f7d8b0a33bc12d..b55b3999947ffa0adba942b90afc66970ed1f3b6 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID10033_CTReconstructionAlgorithm
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:02 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:11 by J. Riesmeier
  *
  */
 
index 0ea6597a02bf91b78ffce022aa3d092660673873..ba5e4ce5a8a4cbb0429db76a515d8ba495b0b850 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID11_RouteOfAdministration
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:32 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:40 by J. Riesmeier
  *
  */
 
index f6affd9e8d32b85a65f823faadf9466dcbf72fcd..524067746dbafd5fbceb56adff7347fb60239a77 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID244_Laterality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:38 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:47 by J. Riesmeier
  *
  */
 
index 770b2acdc0a2aa811277272ea205f5ba34169eb3..7b351808beac1d4967ef9d95ab7253239f4674b3 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID29_AcquisitionModality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:33 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:42 by J. Riesmeier
  *
  */
 
index e64f47d49c0667a1c2c27090e52feac3dc23447e..8e93b56226c74847b63db7178f52ec86049f0435 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID4020_PETRadionuclide
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:40 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:49 by J. Riesmeier
  *
  */
 
index a64408eedae2fe4f8d79d73f47c367909d7b2e74..8a66790bc071f905a6bd4f61ab7a252cfddae5b6 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID4021_PETRadiopharmaceutical
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:42 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:51 by J. Riesmeier
  *
  */
 
index 5e9dfee6e50eae529dbf8f2ec7788035ec561c07..750c1c2e356c2035b92b96b063666a102ba4d1be 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID4031_CommonAnatomicRegions
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:44 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:53 by J. Riesmeier
  *
  */
 
index 02c6ce3f0eb6583fbe4645283b7cf030bf12f4c3..e53fcaec41ecbf10268f0633431395c808dd235c 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID42_NumericValueQualifier
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:35 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:44 by J. Riesmeier
  *
  */
 
index 7921bb92e4573c5681ad7053f6afe714151b98dc..da64f5826a6468484260f47bed63fe140597b4c0 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class CID5000_Languages
@@ -147,19 +147,19 @@ CID5000_Languages::CodeList &CID5000_Languages::getCodes()
     {
         /* create a new code list (should never fail) */
         Codes = new CodeList();
-        /*Codes and initialize it by adding the coded entries */
-        Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "IETF4646", "English")));
-        Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "IETF4646", "English (CA)")));
-        Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "IETF4646", "English (GB)")));
-        Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "IETF4646", "English (US)")));
-        Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "IETF4646", "French")));
-        Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "IETF4646", "French (CA)")));
-        Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "IETF4646", "French (CH)")));
-        Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "IETF4646", "French (FR)")));
-        Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "IETF4646", "German")));
-        Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "IETF4646", "German (AT)")));
-        Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "IETF4646", "German (CH)")));
-        Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "IETF4646", "German (DE)")));
+        /* and initialize it by adding the coded entries */
+        Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "RFC5646", "English")));
+        Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "RFC5646", "English (CA)")));
+        Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "RFC5646", "English (GB)")));
+        Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "RFC5646", "English (US)")));
+        Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "RFC5646", "French")));
+        Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "RFC5646", "French (CA)")));
+        Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "RFC5646", "French (CH)")));
+        Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "RFC5646", "French (FR)")));
+        Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "RFC5646", "German")));
+        Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "RFC5646", "German (AT)")));
+        Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "RFC5646", "German (CH)")));
+        Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "RFC5646", "German (DE)")));
     }
     /* should never be NULL */
     return *Codes;
index 14cdec85e81636cea8735f436f8bdf7983789b51..fa595266daf7b5e6a1f535a0332c62095a19b9e4 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID6147_ResponseCriteria
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:45 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:55 by J. Riesmeier
  *
  */
 
index 7680f033fb352a1688447f0df7ca5891527fc5a3..b9f1ecc8e72ab951296f3f09230e60a25249b215 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7021_MeasurementReportDocumentTitles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:47 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:56 by J. Riesmeier
  *
  */
 
index baf6763640573f6624540944036b83e17c1affc0..803e7a9be1b0e07ff05fe8942a09ffd6d2332766 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:49 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:58 by J. Riesmeier
  *
  */
 
index 035cdb50dd15cd3eb3c34dfad7da5d1933749c9e..2d6a597372218dbced7d35043844ace2d2ac71e6 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7445_DeviceParticipatingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:51 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:00 by J. Riesmeier
  *
  */
 
index a54cbfdc441968b29b692c25ffa581b4d6794ec1..ec2c2b6a266af2cce63ed3faeac20eee43ba40bc 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7452_OrganizationalRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:53 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:02 by J. Riesmeier
  *
  */
 
index 2d748744459b26c29875fe7035e3dd081b7660ca..e824c50a7fd047fba518766a0ad1c42e6601ae36 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7453_PerformingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:55 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:03 by J. Riesmeier
  *
  */
 
index f0dd006f43adb31830f7600f55773c20fe8e51e7..c66e215ff51a8589323d455277bbad5df5b08204 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7464_GeneralRegionOfInterestMeasurementModifiers
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:57 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:05 by J. Riesmeier
  *
  */
 
index e41b27cd1a3e997f58cde28e7fda024c57364311..7b4944907e2e2c43607383223d06e691882110d2 100644 (file)
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7469_GenericIntensityAndSizeMeasurements
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:59 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:07 by J. Riesmeier
  *
  */
 
index 00f2abef50f2bf1a4a038d05a0e42524c90fb54f..abaf4bc81d567794e3b38fbd340f41f73a828373 100644 (file)
@@ -910,14 +910,20 @@ OFCondition DSRDocument::readXMLPatientData(const DSRXMLDocument &doc,
 
 OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc,
                                           DSRXMLCursor cursor,
-                                          const size_t /*flags*/)
+                                          const size_t flags)
 {
     OFCondition result = SR_EC_InvalidDocument;
     if (cursor.valid())
     {
         OFString tmpString;
         /* get Study Instance UID from XML attribute */
-        result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid");
+        if (flags & XF_acceptEmptyStudySeriesInstanceUID)
+        {
+            if (doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad())
+                doc.printMissingAttributeWarning(cursor, "uid");
+            result = EC_Normal;
+        } else
+            result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid");
         /* goto first sub-element */
         cursor.gotoChild();
         /* iterate over all nodes */
@@ -956,14 +962,20 @@ OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc,
 
 OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc,
                                            DSRXMLCursor cursor,
-                                           const size_t /*flags*/)
+                                           const size_t flags)
 {
     OFCondition result = SR_EC_InvalidDocument;
     if (cursor.valid())
     {
         OFString tmpString;
         /* get Series Instance UID from XML attribute */
-        result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid");
+        if (flags & XF_acceptEmptyStudySeriesInstanceUID)
+        {
+            if (doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad())
+                doc.printMissingAttributeWarning(cursor, "uid");
+            result = EC_Normal;
+        } else
+            result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid");
         /* goto first sub-element */
         cursor.gotoChild();
         /* iterate over all nodes */
@@ -999,14 +1011,20 @@ OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc,
 
 OFCondition DSRDocument::readXMLInstanceData(const DSRXMLDocument &doc,
                                              DSRXMLCursor cursor,
-                                             const size_t /*flags*/)
+                                             const size_t flags)
 {
     OFCondition result = SR_EC_InvalidDocument;
     if (cursor.valid())
     {
         OFString tmpString;
         /* get SOP Instance UID from XML attribute */
-        result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid");
+        if (flags & XF_acceptEmptyStudySeriesInstanceUID)
+        {
+            if (doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad())
+                doc.printMissingAttributeWarning(cursor, "uid");
+            result = EC_Normal;
+        } else
+            result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid");
         /* goto first sub-element */
         cursor.gotoChild();
         /* iterate over all nodes */
@@ -1539,7 +1557,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream,
         /* used for HTML tmpString conversion */
         OFString htmlString;
         /* update only some DICOM attributes */
-        updateAttributes(OFFalse /* updateAll */);
+        updateAttributes(OFFalse /*updateAll*/);
 
         // --- HTML/XHTML document structure (start) ---
 
@@ -2831,6 +2849,7 @@ OFCondition DSRDocument::finalizeDocument()
 
 void DSRDocument::updateAttributes(const OFBool updateAll)
 {
+    DCMSR_DEBUG("Updating " << (updateAll ? "all " : "") << "DICOM header attributes");
     const E_DocumentType documentType = getDocumentType();
     /* retrieve SOP class UID from internal document type */
     SOPClassUID.putString(documentTypeToSOPClassUID(documentType));
@@ -2849,6 +2868,7 @@ void DSRDocument::updateAttributes(const OFBool updateAll)
         /* create new SOP instance UID if required */
         if (SOPInstanceUID.isEmpty())
         {
+            DCMSR_DEBUG("  Generating new value for SOP Instance UID");
             OFString tmpString;
             SOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
             /* set instance creation date to current date (YYYYMMDD) */
@@ -2860,10 +2880,16 @@ void DSRDocument::updateAttributes(const OFBool updateAll)
         }
         /* create new study instance UID if required */
         if (StudyInstanceUID.isEmpty())
+        {
+            DCMSR_DEBUG("  Generating new value for Study Instance UID");
             StudyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
+        }
         /* create new series instance UID if required */
         if (SeriesInstanceUID.isEmpty())
+        {
+            DCMSR_DEBUG("  Generating new value for Series Instance UID");
             SeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
+        }
 
         /* check and set content date if required */
         if (ContentDate.isEmpty())
index 19a4d499be84330d044506c7c3041a14203a2393..0bebd999c4de64cc037ae518c96c736a3ba0e10c 100644 (file)
  *---------------------------------*/
 
 /* read flags */
-const size_t DSRTypes::RF_readDigitalSignatures          = 1 <<  0;
-const size_t DSRTypes::RF_acceptUnknownRelationshipType  = 1 <<  1;
-const size_t DSRTypes::RF_acceptInvalidContentItemValue  = 1 <<  2;
-const size_t DSRTypes::RF_ignoreRelationshipConstraints  = 1 <<  3;
-const size_t DSRTypes::RF_ignoreContentItemErrors        = 1 <<  4;
-const size_t DSRTypes::RF_skipInvalidContentItems        = 1 <<  5;
-const size_t DSRTypes::RF_showCurrentlyProcessedItem     = 1 <<  6;
+const size_t DSRTypes::RF_readDigitalSignatures             = 1 <<  0;
+const size_t DSRTypes::RF_acceptUnknownRelationshipType     = 1 <<  1;
+const size_t DSRTypes::RF_acceptInvalidContentItemValue     = 1 <<  2;
+const size_t DSRTypes::RF_ignoreRelationshipConstraints     = 1 <<  3;
+const size_t DSRTypes::RF_ignoreContentItemErrors           = 1 <<  4;
+const size_t DSRTypes::RF_skipInvalidContentItems           = 1 <<  5;
+const size_t DSRTypes::RF_showCurrentlyProcessedItem        = 1 <<  6;
 
 /* renderHTML flags */
-const size_t DSRTypes::HF_neverExpandChildrenInline      = 1 <<  0;
-const size_t DSRTypes::HF_alwaysExpandChildrenInline     = 1 <<  1;
-const size_t DSRTypes::HF_renderInlineCodes              = 1 <<  2;
-const size_t DSRTypes::HF_useCodeDetailsTooltip          = 1 <<  3;
-const size_t DSRTypes::HF_renderConceptNameCodes         = 1 <<  4;
-const size_t DSRTypes::HF_renderNumericUnitCodes         = 1 <<  5;
-const size_t DSRTypes::HF_useCodeMeaningAsUnit           = 1 <<  6;
-const size_t DSRTypes::HF_renderPatientTitle             = 1 <<  7;
-const size_t DSRTypes::HF_renderNoDocumentHeader         = 1 <<  8;
-const size_t DSRTypes::HF_renderDcmtkFootnote            = 1 <<  9;
-const size_t DSRTypes::HF_renderFullData                 = 1 << 10;
-const size_t DSRTypes::HF_renderSectionTitlesInline      = 1 << 11;
-const size_t DSRTypes::HF_copyStyleSheetContent          = 1 << 12;
-const size_t DSRTypes::HF_HTML32Compatibility            = 1 << 13;
-const size_t DSRTypes::HF_XHTML11Compatibility           = 1 << 14;
-const size_t DSRTypes::HF_addDocumentTypeReference       = 1 << 15;
-const size_t DSRTypes::HF_omitGeneratorMetaElement       = 1 << 16;
+const size_t DSRTypes::HF_neverExpandChildrenInline         = 1 <<  0;
+const size_t DSRTypes::HF_alwaysExpandChildrenInline        = 1 <<  1;
+const size_t DSRTypes::HF_renderInlineCodes                 = 1 <<  2;
+const size_t DSRTypes::HF_useCodeDetailsTooltip             = 1 <<  3;
+const size_t DSRTypes::HF_renderConceptNameCodes            = 1 <<  4;
+const size_t DSRTypes::HF_renderNumericUnitCodes            = 1 <<  5;
+const size_t DSRTypes::HF_useCodeMeaningAsUnit              = 1 <<  6;
+const size_t DSRTypes::HF_renderPatientTitle                = 1 <<  7;
+const size_t DSRTypes::HF_renderNoDocumentHeader            = 1 <<  8;
+const size_t DSRTypes::HF_renderDcmtkFootnote               = 1 <<  9;
+const size_t DSRTypes::HF_renderFullData                    = 1 << 10;
+const size_t DSRTypes::HF_renderSectionTitlesInline         = 1 << 11;
+const size_t DSRTypes::HF_copyStyleSheetContent             = 1 << 12;
+const size_t DSRTypes::HF_HTML32Compatibility               = 1 << 13;
+const size_t DSRTypes::HF_XHTML11Compatibility              = 1 << 14;
+const size_t DSRTypes::HF_addDocumentTypeReference          = 1 << 15;
+const size_t DSRTypes::HF_omitGeneratorMetaElement          = 1 << 16;
 /* internal */
-const size_t DSRTypes::HF_renderItemsSeparately          = 1 << 17;
-const size_t DSRTypes::HF_renderItemInline               = 1 << 18;
-const size_t DSRTypes::HF_currentlyInsideAnnex           = 1 << 19;
-const size_t DSRTypes::HF_createFootnoteReferences       = 1 << 20;
-const size_t DSRTypes::HF_convertNonASCIICharacters      = 1 << 21;
+const size_t DSRTypes::HF_renderItemsSeparately             = 1 << 17;
+const size_t DSRTypes::HF_renderItemInline                  = 1 << 18;
+const size_t DSRTypes::HF_currentlyInsideAnnex              = 1 << 19;
+const size_t DSRTypes::HF_createFootnoteReferences          = 1 << 20;
+const size_t DSRTypes::HF_convertNonASCIICharacters         = 1 << 21;
 /* shortcuts */
-const size_t DSRTypes::HF_renderAllCodes                 = DSRTypes::HF_renderInlineCodes |
-                                                           DSRTypes::HF_renderConceptNameCodes |
-                                                           DSRTypes::HF_renderNumericUnitCodes;
-const size_t DSRTypes::HF_internalUseOnly                = DSRTypes::HF_renderItemsSeparately |
-                                                           DSRTypes::HF_renderItemInline |
-                                                           DSRTypes::HF_currentlyInsideAnnex |
-                                                           DSRTypes::HF_createFootnoteReferences |
-                                                           DSRTypes::HF_convertNonASCIICharacters;
+const size_t DSRTypes::HF_renderAllCodes                    = DSRTypes::HF_renderInlineCodes |
+                                                              DSRTypes::HF_renderConceptNameCodes |
+                                                              DSRTypes::HF_renderNumericUnitCodes;
+const size_t DSRTypes::HF_internalUseOnly                   = DSRTypes::HF_renderItemsSeparately |
+                                                              DSRTypes::HF_renderItemInline |
+                                                              DSRTypes::HF_currentlyInsideAnnex |
+                                                              DSRTypes::HF_createFootnoteReferences |
+                                                              DSRTypes::HF_convertNonASCIICharacters;
 
 /* read/writeXML flags */
-const size_t DSRTypes::XF_writeEmptyTags                 = 1 << 0;
-const size_t DSRTypes::XF_writeTemplateIdentification    = 1 << 1;
-const size_t DSRTypes::XF_alwaysWriteItemIdentifier      = 1 << 2;
-const size_t DSRTypes::XF_codeComponentsAsAttribute      = 1 << 3;
-const size_t DSRTypes::XF_relationshipTypeAsAttribute    = 1 << 4;
-const size_t DSRTypes::XF_valueTypeAsAttribute           = 1 << 5;
-const size_t DSRTypes::XF_templateIdentifierAsAttribute  = 1 << 6;
-const size_t DSRTypes::XF_useDcmsrNamespace              = 1 << 7;
-const size_t DSRTypes::XF_addSchemaReference             = 1 << 8;
-const size_t DSRTypes::XF_validateSchema                 = 1 << 9;
-const size_t DSRTypes::XF_templateElementEnclosesItems   = 1 << 10;
-const size_t DSRTypes::XF_addCommentsForIncludedTemplate = 1 << 11;
+const size_t DSRTypes::XF_writeEmptyTags                    = 1 << 0;
+const size_t DSRTypes::XF_writeTemplateIdentification       = 1 << 1;
+const size_t DSRTypes::XF_alwaysWriteItemIdentifier         = 1 << 2;
+const size_t DSRTypes::XF_codeComponentsAsAttribute         = 1 << 3;
+const size_t DSRTypes::XF_relationshipTypeAsAttribute       = 1 << 4;
+const size_t DSRTypes::XF_valueTypeAsAttribute              = 1 << 5;
+const size_t DSRTypes::XF_templateIdentifierAsAttribute     = 1 << 6;
+const size_t DSRTypes::XF_useDcmsrNamespace                 = 1 << 7;
+const size_t DSRTypes::XF_addSchemaReference                = 1 << 8;
+const size_t DSRTypes::XF_validateSchema                    = 1 << 9;
+const size_t DSRTypes::XF_templateElementEnclosesItems      = 1 << 10;
+const size_t DSRTypes::XF_addCommentsForIncludedTemplate    = 1 << 11;
+const size_t DSRTypes::XF_acceptEmptyStudySeriesInstanceUID = 1 << 12;
 /* shortcuts */
-const size_t DSRTypes::XF_encodeEverythingAsAttribute    = DSRTypes::XF_codeComponentsAsAttribute |
-                                                           DSRTypes::XF_relationshipTypeAsAttribute |
-                                                           DSRTypes::XF_valueTypeAsAttribute |
-                                                           DSRTypes::XF_templateIdentifierAsAttribute;
+const size_t DSRTypes::XF_encodeEverythingAsAttribute       = DSRTypes::XF_codeComponentsAsAttribute |
+                                                              DSRTypes::XF_relationshipTypeAsAttribute |
+                                                              DSRTypes::XF_valueTypeAsAttribute |
+                                                              DSRTypes::XF_templateIdentifierAsAttribute;
 
 /* print flags */
-const size_t DSRTypes::PF_printItemPosition              = 1 << 0;
-const size_t DSRTypes::PF_shortenLongItemValues          = 1 << 1;
-const size_t DSRTypes::PF_printSOPInstanceUID            = 1 << 2;
-const size_t DSRTypes::PF_printConceptNameCodes          = 1 << 3;
-const size_t DSRTypes::PF_printNoDocumentHeader          = 1 << 4;
-const size_t DSRTypes::PF_printTemplateIdentification    = 1 << 5;
-const size_t DSRTypes::PF_useANSIEscapeCodes             = 1 << 6;
-const size_t DSRTypes::PF_printLongSOPClassName          = 1 << 7;
-const size_t DSRTypes::PF_printSOPClassUID               = 1 << 8;
-const size_t DSRTypes::PF_printInvalidCodes              = 1 << 9;
-const size_t DSRTypes::PF_printNodeID                    = 1 << 10;
-const size_t DSRTypes::PF_indicateEnhancedEncodingMode   = 1 << 11;
-const size_t DSRTypes::PF_printAnnotation                = 1 << 12;
-const size_t DSRTypes::PF_hideIncludedTemplateNodes      = 1 << 13;
-const size_t DSRTypes::PF_dontCountIncludedTemplateNodes = 1 << 14;
+const size_t DSRTypes::PF_printItemPosition                 = 1 << 0;
+const size_t DSRTypes::PF_shortenLongItemValues             = 1 << 1;
+const size_t DSRTypes::PF_printSOPInstanceUID               = 1 << 2;
+const size_t DSRTypes::PF_printConceptNameCodes             = 1 << 3;
+const size_t DSRTypes::PF_printNoDocumentHeader             = 1 << 4;
+const size_t DSRTypes::PF_printTemplateIdentification       = 1 << 5;
+const size_t DSRTypes::PF_useANSIEscapeCodes                = 1 << 6;
+const size_t DSRTypes::PF_printLongSOPClassName             = 1 << 7;
+const size_t DSRTypes::PF_printSOPClassUID                  = 1 << 8;
+const size_t DSRTypes::PF_printInvalidCodes                 = 1 << 9;
+const size_t DSRTypes::PF_printNodeID                       = 1 << 10;
+const size_t DSRTypes::PF_indicateEnhancedEncodingMode      = 1 << 11;
+const size_t DSRTypes::PF_printAnnotation                   = 1 << 12;
+const size_t DSRTypes::PF_hideIncludedTemplateNodes         = 1 << 13;
+const size_t DSRTypes::PF_dontCountIncludedTemplateNodes    = 1 << 14;
 /* shortcuts */
-const size_t DSRTypes::PF_printAllCodes                  = DSRTypes::PF_printConceptNameCodes;
+const size_t DSRTypes::PF_printAllCodes                     = DSRTypes::PF_printConceptNameCodes;
 
 /* checkByReferenceRelationships modes */
-const size_t DSRTypes::CM_updatePositionString           = 1 << 0;
-const size_t DSRTypes::CM_updateNodeID                   = 1 << 1;
-const size_t DSRTypes::CM_resetReferenceTargetFlag       = 1 << 2;
+const size_t DSRTypes::CM_updatePositionString              = 1 << 0;
+const size_t DSRTypes::CM_updateNodeID                      = 1 << 1;
+const size_t DSRTypes::CM_resetReferenceTargetFlag          = 1 << 2;
 
 /* checkByReferenceRelationships bit masks (avoid conflicts!) */
-const size_t DSRTypes::CB_maskPrintFlags                 = DSRTypes::PF_dontCountIncludedTemplateNodes;
-const size_t DSRTypes::CB_maskReadFlags                  = DSRTypes::RF_acceptUnknownRelationshipType |
-                                                           DSRTypes::RF_ignoreRelationshipConstraints |
-                                                           DSRTypes::RF_showCurrentlyProcessedItem;
+const size_t DSRTypes::CB_maskPrintFlags                    = DSRTypes::PF_dontCountIncludedTemplateNodes;
+const size_t DSRTypes::CB_maskReadFlags                     = DSRTypes::RF_acceptUnknownRelationshipType |
+                                                              DSRTypes::RF_ignoreRelationshipConstraints |
+                                                              DSRTypes::RF_showCurrentlyProcessedItem;
 
 
 /*---------------------*
index 23658cecb9c7bd6c065b1fe00e5a9849c80cd170..55c9690073f391d048616728d39744929468c986 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2003-2014, OFFIS e.V.
+ *  Copyright (C) 2003-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -684,11 +684,24 @@ DSRTypes::E_RelationshipType DSRXMLDocument::getRelationshipTypeFromNode(const D
 
 void DSRXMLDocument::printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const
 {
+    /* report warning message */
     OFString tmpString;
     DCMSR_WARN("Unexpected node '" << getFullNodePath(cursor, tmpString) << "', skipping");
 }
 
 
+void DSRXMLDocument::printMissingAttributeWarning(const DSRXMLCursor &cursor,
+                                                  const char *name) const
+{
+    /* report warning message */
+    if (name != NULL)
+    {
+        OFString tmpString;
+        DCMSR_WARN("XML attribute '" << name << "' missing/empty in " << getFullNodePath(cursor, tmpString));
+    }
+}
+
+
 void DSRXMLDocument::printMissingAttributeError(const DSRXMLCursor &cursor,
                                                 const char *name) const
 {
index e1ea238ac5f5a2f51d5faa0b844273834d22e890..fcbf1f571012b8d82e19cf1719b55eda22659850 100644 (file)
@@ -1,6 +1,6 @@
 # declare executables
 DCMTK_ADD_EXECUTABLE(mkreport mkreport)
-DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr)
+DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr tsrlist)
 
 # make sure executables are linked to the corresponding libraries
 DCMTK_TARGET_LINK_MODULES(mkreport dcmsr dcmimage dcmimgle dcmdata oflog ofstd)
index 21d5734f723a67eabe158eec4e1dd9ae08bcb630..c3114bf46f5db7953cfdc08c4f67b6b9fde42515 100644 (file)
@@ -565,6 +565,52 @@ tsrdoctr.o: tsrdoctr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmsr/dsrtpltn.h ../include/dcmtk/dcmsr/dsrstpl.h \
  ../include/dcmtk/dcmsr/dsrnumtn.h ../include/dcmtk/dcmsr/dsrtextn.h \
  ../include/dcmtk/dcmsr/dsrstrvl.h
+tsrlist.o: tsrlist.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../include/dcmtk/dcmsr/dsrtlist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h
 tsrnumvl.o: tsrnumvl.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../ofstd/include/dcmtk/ofstd/oftest.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
index 8509e6c62e26f9702c328e786e23cb4785aed18e..11dd711ac051d989a3b630f19cf4cbfae7683de8 100644 (file)
@@ -26,7 +26,8 @@ LIBDIRS = -L$(top_srcdir)/libcmr -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc \
 LOCALLIBS = -lcmr -ldcmsr -ldcmimage -ldcmimgle -ldcmdata -loflog -lofstd $(TIFFLIBS) \
        $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(ICONVLIBS)
 
-tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o
+tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o \
+       tsrlist.o
 objs = mkreport.o $(tstobjs)
 progs = mkreport tests
 
index c68807756a5bc3d435d2364e06e028701727470b..36fd3208a5fa632bed7a2741ea4e62b9dd742710 100644 (file)
@@ -23,6 +23,8 @@
 
 #include "dcmtk/ofstd/oftest.h"
 
+OFTEST_REGISTER(dcmsr_addItems);
+OFTEST_REGISTER(dcmsr_getItems);
 OFTEST_REGISTER(dcmsr_addTreeNode_1);
 OFTEST_REGISTER(dcmsr_addTreeNode_2);
 OFTEST_REGISTER(dcmsr_addTreeNode_3);
diff --git a/dcmsr/tests/tsrlist.cc b/dcmsr/tests/tsrlist.cc
new file mode 100644 (file)
index 0000000..499ce1c
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ *
+ *  Copyright (C) 2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmsr
+ *
+ *  Author: Joerg Riesmeier
+ *
+ *  Purpose:
+ *    test program for class DSRListOfItems
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftest.h"
+
+#include "dcmtk/dcmsr/dsrtlist.h"
+
+
+OFTEST(dcmsr_addItems)
+{
+    // disable test case when building shared libraries because of linker errors
+#ifndef DCMTK_SHARED
+    /* prepare test data */
+    OFVector<Uint16> vec;
+    for (Uint16 i = 0; i < 10; ++i)
+        vec.push_back(i);
+    /* add data to list */
+    DSRListOfItems<Uint16> lst;
+    lst.addItems(vec);
+    /* and check result */
+    OFCHECK_EQUAL(lst.getNumberOfItems(), 10);
+    for (Uint16 j = 0; j < 10; ++j)
+        OFCHECK_EQUAL(lst.getItem(j + 1), j);
+    OFCHECK(lst.isElement(7));
+    OFCHECK(!lst.isElement(10));
+#endif
+}
+
+
+OFTEST(dcmsr_getItems)
+{
+    // disable test case when building shared libraries because of linker errors
+#ifndef DCMTK_SHARED
+    DSRListOfItems<Uint16> lst;
+    /* add data to list */
+    for (Uint16 i = 0; i < 10; ++i)
+        lst.addItem(i);
+    /* and check result */
+    OFCHECK_EQUAL(lst.getNumberOfItems(), 10);
+    OFVector<Uint16> vec;
+    OFCHECK(lst.getItems(vec).good());
+    OFCHECK_EQUAL(vec.size(), 10);
+    for (Uint16 j = 0; j < 10; ++j)
+        OFCHECK_EQUAL(vec.at(j), j);
+#endif
+}
index 12566ff88149785fe27ff530eee75fe9270be529..94d337920b9c992689a3996d6a8603e35e28cec4 100644 (file)
@@ -1,6 +1,6 @@
 /*!
 
-\page mod_dcmtract dcmtract: a library for working with Tractography Results
+\page mod_dcmtract dcmtract: a library for working with tractography results
 
 This module contains classes to deal with DICOM Tractography Results objects.
 It is able to create, load and access the contained fiber tracks and the related
@@ -22,7 +22,6 @@ Module.
 The main class of this module is:
 \li \b TrcTractographyResults
 
-
 \section Examples
 
 The following (complete) example shows how to load a DICOM Tractography Results
index 16a76376bd1a9ad313a1c08bd315c3fc59e7d607..ff84b2ee65e5b48580b87bc83cfa0ef275860ac1 100644 (file)
@@ -59,6 +59,8 @@ trcmeasurement.o: trcmeasurement.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -91,11 +93,9 @@ trcmeasurement.o: trcmeasurement.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -183,6 +183,8 @@ trcmodtractresults.o: trcmodtractresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -216,11 +218,9 @@ trcmodtractresults.o: trcmodtractresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -312,6 +312,8 @@ trcstatistic.o: trcstatistic.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -344,11 +346,9 @@ trcstatistic.o: trcstatistic.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -436,6 +436,8 @@ trctrack.o: trctrack.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -512,6 +514,8 @@ trctrackset.o: trctrackset.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -542,11 +546,9 @@ trctrackset.o: trctrackset.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -638,6 +640,8 @@ trctractographyresults.o: trctractographyresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -668,11 +672,9 @@ trctractographyresults.o: trctractographyresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
index 2d05cde86db06c65b14f77bf90ed2817d271e5e8..1e546b11856604bffea6f8bc09603be18c23c4ab 100644 (file)
 
 Changes between releases are documented here.
 
+**** Changes from 2016.11.02 (schlamelcher)
+
+- Updated CHANGES.361 for new development snapshot.
+  Affects: docs/CHANGES.361
+
+- Updated DCMTK_ABI_VERSION for new development snapshot.
+  Affects: CMake/dcmtkPrepare.cmake
+
+- Updated man pages for new development snapshot.
+  Affects: doxygen/manpages/man1/dcm2pdf.1
+           doxygen/manpages/man1/dcm2pnm.1
+           doxygen/manpages/man1/dcm2xml.1
+           doxygen/manpages/man1/dcmcjpeg.1
+           doxygen/manpages/man1/dcmcjpls.1
+           doxygen/manpages/man1/dcmconv.1
+           doxygen/manpages/man1/dcmcrle.1
+           doxygen/manpages/man1/dcmdjpeg.1
+           doxygen/manpages/man1/dcmdjpls.1
+           doxygen/manpages/man1/dcmdrle.1
+           doxygen/manpages/man1/dcmdspfn.1
+           doxygen/manpages/man1/dcmdump.1
+           doxygen/manpages/man1/dcmftest.1
+           doxygen/manpages/man1/dcmgpdir.1
+           doxygen/manpages/man1/dcmj2pnm.1
+           doxygen/manpages/man1/dcml2pnm.1
+           doxygen/manpages/man1/dcmmkcrv.1
+           doxygen/manpages/man1/dcmmkdir.1
+           doxygen/manpages/man1/dcmmklut.1
+           doxygen/manpages/man1/dcmodify.1
+           doxygen/manpages/man1/dcmp2pgm.1
+           doxygen/manpages/man1/dcmprscp.1
+           doxygen/manpages/man1/dcmprscu.1
+           doxygen/manpages/man1/dcmpschk.1
+           doxygen/manpages/man1/dcmpsmk.1
+           doxygen/manpages/man1/dcmpsprt.1
+           doxygen/manpages/man1/dcmpsrcv.1
+           doxygen/manpages/man1/dcmpssnd.1
+           doxygen/manpages/man1/dcmqridx.1
+           doxygen/manpages/man1/dcmqrscp.1
+           doxygen/manpages/man1/dcmqrti.1
+           doxygen/manpages/man1/dcmquant.1
+           doxygen/manpages/man1/dcmrecv.1
+           doxygen/manpages/man1/dcmscale.1
+           doxygen/manpages/man1/dcmsend.1
+           doxygen/manpages/man1/dcmsign.1
+           doxygen/manpages/man1/dcod2lum.1
+           doxygen/manpages/man1/dconvlum.1
+           doxygen/manpages/man1/drtdump.1
+           doxygen/manpages/man1/dsr2html.1
+           doxygen/manpages/man1/dsr2xml.1
+           doxygen/manpages/man1/dsrdump.1
+           doxygen/manpages/man1/dump2dcm.1
+           doxygen/manpages/man1/echoscu.1
+           doxygen/manpages/man1/findscu.1
+           doxygen/manpages/man1/getscu.1
+           doxygen/manpages/man1/img2dcm.1
+           doxygen/manpages/man1/movescu.1
+           doxygen/manpages/man1/pdf2dcm.1
+           doxygen/manpages/man1/storescp.1
+           doxygen/manpages/man1/storescu.1
+           doxygen/manpages/man1/termscu.1
+           doxygen/manpages/man1/wlmscpfs.1
+           doxygen/manpages/man1/xml2dcm.1
+           doxygen/manpages/man1/xml2dsr.1
+
+- Updated Makefile dependencies.
+  Affects: ofstd/libsrc/Makefile.dep
+
+- Added API documentation for OFvariant etc.
+  Affects: ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/include/dcmtk/ofstd/ofvriant.h
+
+**** Changes from 2016.11.01 (riesmeier)
+
+- Added readXML mode that accepts empty/missing UID:
+  Added new mode to readXML() that accepts empty or missing Study/Series/
+  SOP Instance UID values in the input document. This is required if only
+  some of these three UID values should be re-generated (replaced). Now,
+  option --generate-new-uids (with --dont-overwrite-uids) works as expected.
+  Thanks to Martin Wenger <Martin.Wenger@klinikum-hef.de> for the original
+  report that resulted in this improvement/fix.
+  Affects: dcmsr/apps/xml2dsr.cc
+           dcmsr/include/dcmtk/dcmsr/dsrtypes.h
+           dcmsr/include/dcmtk/dcmsr/dsrxmld.h
+           dcmsr/libsrc/dsrdoc.cc
+           dcmsr/libsrc/dsrtypes.cc
+           dcmsr/libsrc/dsrxmld.cc
+
+- Output debug messages when updating attributes:
+  Output messages to the debug logger when updating DICOM header attributes,
+  especially when generating new Study / Series / SOP Instance UIDs.
+  Affects: dcmsr/libsrc/dsrdoc.cc
+
+- Made clear that options +/-Uo require +Ug:
+  Now it is checked whether option --generate-new-uids (+Ug) is used when
+  --overwrite-uids (+Uo) or --dont-overwrite-uids (-Uo) is also specified
+  on the command line. This should avoid possible confusions.
+  Affects: dcmdata/apps/xml2dcm.cc
+           dcmsr/apps/xml2dsr.cc
+
+**** Changes from 2016.10.31 (schlamelcher)
+
+- Added OFvariant implementation for C++11:
+  Closes DCMTK bug #693.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
+           ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/include/dcmtk/ofstd/ofvriant.h
+
+**** Changes from 2016.10.30 (schlamelcher)
+
+- Fixed a problem with a previous commit:
+  A line in a previous commit was truncated, leading to compiler errors.
+  Affects: dcmpstat/libsrc/dviface.cc
+
+**** Changes from 2016.10.28 (schlamelcher)
+
+- Fixed using third party libraries with MinGW:
+  Modified 3rdparty.cmake such that MinGW is handled the same as Unix like
+  systems regarding the integration of third party libraries.
+  Affects: CMake/3rdparty.cmake
+
+- Fixed 32 vs. 64 bit problem in dcmqrdb:
+  Fixed incompatibility of dcmqrdb databases between 32 bit and 64 bit code on
+  the same platform. Don't forget to re-create your databases using dcmqridx.
+  Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h
+
+- Several fixes for dcmpstat:
+  Fixed detecting structured reporting objects based on the SOP class.
+  Fixed print job execution and cleanup. Print job executing was bugged when
+  the name of one print job was a prefix to the name of another print job.
+  Fixed deadlock in instanceReviewed() regarding database access.
+  Fixed opening files named using non ASCII characters (only relevant on
+  Windows).
+  Affects: dcmpstat/apps/dcmprscu.cc
+           dcmpstat/libsrc/dviface.cc
+           dcmpstat/libsrc/dvpshlp.cc
+
+- Fixed wrong usage of checkStringValue() in dcmpmap:
+  Fixed passing the attribute type to checkStringValue() where the value multi-
+  plicity is expected.
+  Affects: dcmpmap/libsrc/dpmmodparametricmapimage.cc
+
+**** Changes from 2016.10.12 (riesmeier)
+
+- Added comment on recently added DICOM attributes:
+  Added comment on DICOM attributes that were recently added to the DICOM
+  standard but which are not (yet) supported by the "dcmsr" module.
+  As usual, these "things to be done" can be found by searching for "tbd:"
+  in the source code of this module.
+  Affects: dcmsr/include/dcmtk/dcmsr/dsrcodvl.h
+           dcmsr/include/dcmtk/dcmsr/dsrdoc.h
+
+- Updated "dcmrt" classes based on DICOM 2016d:
+  Updated automatically generated IOD and sequence C++ classes for the various
+  RT objects based on the current edition of the DICOM standard (2016d).
+  Added:   dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtddps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmris.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtscs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsins.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtudis.h
+           dcmrt/libsrc/drtcgis.cc
+           dcmrt/libsrc/drtdddps.cc
+           dcmrt/libsrc/drtddps.cc
+           dcmrt/libsrc/drtgpis.cc
+           dcmrt/libsrc/drtmris.cc
+           dcmrt/libsrc/drtpdeds.cc
+           dcmrt/libsrc/drtscs.cc
+           dcmrt/libsrc/drtsins.cc
+           dcmrt/libsrc/drtspgis.cc
+           dcmrt/libsrc/drtsptcs.cc
+           dcmrt/libsrc/drtssrcs.cc
+           dcmrt/libsrc/drtsss.cc
+           dcmrt/libsrc/drtudis.cc
+  Removed: dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
+           dcmrt/libsrc/drtarics.cc
+  Affects: dcmrt/apps/Makefile.dep
+           dcmrt/include/dcmtk/dcmrt/drtdose.h
+           dcmrt/include/dcmtk/dcmrt/drtimage.h
+           dcmrt/include/dcmtk/dcmrt/drtionpl.h
+           dcmrt/include/dcmtk/dcmrt/drtiontr.h
+           dcmrt/include/dcmtk/dcmrt/drtplan.h
+           dcmrt/include/dcmtk/dcmrt/drtstrct.h
+           dcmrt/include/dcmtk/dcmrt/drttreat.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtads.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtafs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtags.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtass.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbads.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtccs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtces.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtchs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcims.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdias.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drteas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtecs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtes.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfes.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtgas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtians.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtibls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtibs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drticpds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drticps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtircs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtitts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtoas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtois.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtporis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtqds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtras.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrims.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtris.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrros.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrses.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrws.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtscris.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtshds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsns.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttms0.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttms9.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttscds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtvls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtwps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtws.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h
+           dcmrt/libsrc/CMakeLists.txt
+           dcmrt/libsrc/Makefile.dep
+           dcmrt/libsrc/Makefile.in
+           dcmrt/libsrc/drtaadcs.cc
+           dcmrt/libsrc/drtadcs.cc
+           dcmrt/libsrc/drtads.cc
+           dcmrt/libsrc/drtafs.cc
+           dcmrt/libsrc/drtags.cc
+           dcmrt/libsrc/drtajcs.cc
+           dcmrt/libsrc/drtas1.cc
+           dcmrt/libsrc/drtas5.cc
+           dcmrt/libsrc/drtas6.cc
+           dcmrt/libsrc/drtas7.cc
+           dcmrt/libsrc/drtass.cc
+           dcmrt/libsrc/drtbads.cc
+           dcmrt/libsrc/drtbas.cc
+           dcmrt/libsrc/drtbcps.cc
+           dcmrt/libsrc/drtbl2.cc
+           dcmrt/libsrc/drtbl5.cc
+           dcmrt/libsrc/drtbldls.cc
+           dcmrt/libsrc/drtbldps.cc
+           dcmrt/libsrc/drtblds1.cc
+           dcmrt/libsrc/drtblds5.cc
+           dcmrt/libsrc/drtblds6.cc
+           dcmrt/libsrc/drtbldts.cc
+           dcmrt/libsrc/drtbrcss.cc
+           dcmrt/libsrc/drtbrdrs.cc
+           dcmrt/libsrc/drtbrs.cc
+           dcmrt/libsrc/drtbs.cc
+           dcmrt/libsrc/drtbss.cc
+           dcmrt/libsrc/drtbvcps.cc
+           dcmrt/libsrc/drtcbars.cc
+           dcmrt/libsrc/drtccs.cc
+           dcmrt/libsrc/drtcctus.cc
+           dcmrt/libsrc/drtcdrs.cc
+           dcmrt/libsrc/drtces.cc
+           dcmrt/libsrc/drtchs.cc
+           dcmrt/libsrc/drtcims.cc
+           dcmrt/libsrc/drtcis.cc
+           dcmrt/libsrc/drtcncs.cc
+           dcmrt/libsrc/drtcos.cc
+           dcmrt/libsrc/drtcpas.cc
+           dcmrt/libsrc/drtcpis.cc
+           dcmrt/libsrc/drtcps.cc
+           dcmrt/libsrc/drtcs.cc
+           dcmrt/libsrc/drtcsas.cc
+           dcmrt/libsrc/drtcshs.cc
+           dcmrt/libsrc/drtcsis.cc
+           dcmrt/libsrc/drtcss.cc
+           dcmrt/libsrc/drtdcs.cc
+           dcmrt/libsrc/drtdias.cc
+           dcmrt/libsrc/drtdimcs.cc
+           dcmrt/libsrc/drtdimrs.cc
+           dcmrt/libsrc/drtdirs.cc
+           dcmrt/libsrc/drtdose.cc
+           dcmrt/libsrc/drtdrs.cc
+           dcmrt/libsrc/drtds.cc
+           dcmrt/libsrc/drtdspcs.cc
+           dcmrt/libsrc/drtdss.cc
+           dcmrt/libsrc/drtdvhs.cc
+           dcmrt/libsrc/drtdvrrs.cc
+           dcmrt/libsrc/drteas.cc
+           dcmrt/libsrc/drtecs.cc
+           dcmrt/libsrc/drtes.cc
+           dcmrt/libsrc/drtfds.cc
+           dcmrt/libsrc/drtfes.cc
+           dcmrt/libsrc/drtfgs.cc
+           dcmrt/libsrc/drtfgss.cc
+           dcmrt/libsrc/drtfms.cc
+           dcmrt/libsrc/drtfsss.cc
+           dcmrt/libsrc/drtgas.cc
+           dcmrt/libsrc/drthsdrs.cc
+           dcmrt/libsrc/drtiais.cc
+           dcmrt/libsrc/drtians.cc
+           dcmrt/libsrc/drtiblds.cc
+           dcmrt/libsrc/drtibls.cc
+           dcmrt/libsrc/drtibs.cc
+           dcmrt/libsrc/drticpds.cc
+           dcmrt/libsrc/drticps.cc
+           dcmrt/libsrc/drtics.cc
+           dcmrt/libsrc/drtiis.cc
+           dcmrt/libsrc/drtimage.cc
+           dcmrt/libsrc/drtionpl.cc
+           dcmrt/libsrc/drtiontr.cc
+           dcmrt/libsrc/drtipiqs.cc
+           dcmrt/libsrc/drtircs.cc
+           dcmrt/libsrc/drtiseis.cc
+           dcmrt/libsrc/drtitts.cc
+           dcmrt/libsrc/drtiwps.cc
+           dcmrt/libsrc/drtiws.cc
+           dcmrt/libsrc/drtlsds.cc
+           dcmrt/libsrc/drtlsds6.cc
+           dcmrt/libsrc/drtlsds7.cc
+           dcmrt/libsrc/drtmacds.cc
+           dcmrt/libsrc/drtmas.cc
+           dcmrt/libsrc/drtmdrs.cc
+           dcmrt/libsrc/drtmls.cc
+           dcmrt/libsrc/drtmps.cc
+           dcmrt/libsrc/drtmss.cc
+           dcmrt/libsrc/drtmucs.cc
+           dcmrt/libsrc/drtoas.cc
+           dcmrt/libsrc/drtois.cc
+           dcmrt/libsrc/drtopis.cc
+           dcmrt/libsrc/drtos.cc
+           dcmrt/libsrc/drtpbcs.cc
+           dcmrt/libsrc/drtpcs.cc
+           dcmrt/libsrc/drtpcxs.cc
+           dcmrt/libsrc/drtpdecs.cc
+           dcmrt/libsrc/drtpfms.cc
+           dcmrt/libsrc/drtpics.cc
+           dcmrt/libsrc/drtplan.cc
+           dcmrt/libsrc/drtporcs.cc
+           dcmrt/libsrc/drtporis.cc
+           dcmrt/libsrc/drtppcs.cc
+           dcmrt/libsrc/drtprsis.cc
+           dcmrt/libsrc/drtpscs.cc
+           dcmrt/libsrc/drtpsics.cc
+           dcmrt/libsrc/drtpss.cc
+           dcmrt/libsrc/drtpsss.cc
+           dcmrt/libsrc/drtpvis.cc
+           dcmrt/libsrc/drtqds.cc
+           dcmrt/libsrc/drtras.cc
+           dcmrt/libsrc/drtrbas2.cc
+           dcmrt/libsrc/drtrbas8.cc
+           dcmrt/libsrc/drtrbls.cc
+           dcmrt/libsrc/drtrbos1.cc
+           dcmrt/libsrc/drtrbos6.cc
+           dcmrt/libsrc/drtrbos7.cc
+           dcmrt/libsrc/drtrbs2.cc
+           dcmrt/libsrc/drtrbs4.cc
+           dcmrt/libsrc/drtrbs8.cc
+           dcmrt/libsrc/drtrcdrs.cc
+           dcmrt/libsrc/drtrcos.cc
+           dcmrt/libsrc/drtrcps.cc
+           dcmrt/libsrc/drtrcs.cc
+           dcmrt/libsrc/drtrdros.cc
+           dcmrt/libsrc/drtrdrs1.cc
+           dcmrt/libsrc/drtrdrs6.cc
+           dcmrt/libsrc/drtrdrs8.cc
+           dcmrt/libsrc/drtrds.cc
+           dcmrt/libsrc/drtrecs.cc
+           dcmrt/libsrc/drtrfgs.cc
+           dcmrt/libsrc/drtrfors.cc
+           dcmrt/libsrc/drtrics.cc
+           dcmrt/libsrc/drtrims.cc
+           dcmrt/libsrc/drtris.cc
+           dcmrt/libsrc/drtrlsds.cc
+           dcmrt/libsrc/drtrmdrs.cc
+           dcmrt/libsrc/drtrms.cc
+           dcmrt/libsrc/drtrmss6.cc
+           dcmrt/libsrc/drtrmss7.cc
+           dcmrt/libsrc/drtrpcs.cc
+           dcmrt/libsrc/drtrpis.cc
+           dcmrt/libsrc/drtrppcs.cc
+           dcmrt/libsrc/drtrpphs.cc
+           dcmrt/libsrc/drtrpps.cc
+           dcmrt/libsrc/drtrppss.cc
+           dcmrt/libsrc/drtrps.cc
+           dcmrt/libsrc/drtrris1.cc
+           dcmrt/libsrc/drtrris6.cc
+           dcmrt/libsrc/drtrris9.cc
+           dcmrt/libsrc/drtrrms.cc
+           dcmrt/libsrc/drtrros.cc
+           dcmrt/libsrc/drtrrpcs.cc
+           dcmrt/libsrc/drtrrros.cc
+           dcmrt/libsrc/drtrrs.cc
+           dcmrt/libsrc/drtrrshs.cc
+           dcmrt/libsrc/drtrrtps.cc
+           dcmrt/libsrc/drtrrtps3.cc
+           dcmrt/libsrc/drtrrtps4.cc
+           dcmrt/libsrc/drtrrtps5.cc
+           dcmrt/libsrc/drtrscs.cc
+           dcmrt/libsrc/drtrsers.cc
+           dcmrt/libsrc/drtrses.cc
+           dcmrt/libsrc/drtrshs.cc
+           dcmrt/libsrc/drtrshs6.cc
+           dcmrt/libsrc/drtrshs7.cc
+           dcmrt/libsrc/drtrsis.cc
+           dcmrt/libsrc/drtrsns.cc
+           dcmrt/libsrc/drtrsos.cc
+           dcmrt/libsrc/drtrsrs.cc
+           dcmrt/libsrc/drtrss.cc
+           dcmrt/libsrc/drtrsss.cc
+           dcmrt/libsrc/drtrsts.cc
+           dcmrt/libsrc/drtrtrs2.cc
+           dcmrt/libsrc/drtrtrs4.cc
+           dcmrt/libsrc/drtrvis.cc
+           dcmrt/libsrc/drtrws.cc
+           dcmrt/libsrc/drtrwvms.cc
+           dcmrt/libsrc/drtscris.cc
+           dcmrt/libsrc/drtsdcs.cc
+           dcmrt/libsrc/drtsds.cc
+           dcmrt/libsrc/drtshds.cc
+           dcmrt/libsrc/drtsis.cc
+           dcmrt/libsrc/drtsns.cc
+           dcmrt/libsrc/drtspccs.cc
+           dcmrt/libsrc/drtspcs.cc
+           dcmrt/libsrc/drtss.cc
+           dcmrt/libsrc/drtssrs.cc
+           dcmrt/libsrc/drtstrct.cc
+           dcmrt/libsrc/drttms0.cc
+           dcmrt/libsrc/drttms9.cc
+           dcmrt/libsrc/drttreat.cc
+           dcmrt/libsrc/drttscds.cc
+           dcmrt/libsrc/drttsibs.cc
+           dcmrt/libsrc/drttsmds.cc
+           dcmrt/libsrc/drttts.cc
+           dcmrt/libsrc/drtvls.cc
+           dcmrt/libsrc/drtwps.cc
+           dcmrt/libsrc/drtwrs.cc
+           dcmrt/libsrc/drtwrsrs.cc
+           dcmrt/libsrc/drtws.cc
+           dcmrt/libsrc/drtxrs.cc
+           dcmrt/tests/Makefile.dep
+
+- Fixed typo in comments.
+  Affects: dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h
+
+**** Changes from 2016.10.04 (riesmeier)
+
+- Updated Context Group classes for DICOM 2016d:
+  Updated automatically generated Context Group classes for the 2016d
+  edition of the DICOM standard. There were no changes to the supported
+  Context Groups.
+  Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid100.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid11.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid244.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid29.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid42.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h
+           dcmsr/libcmr/cid100.cc
+           dcmsr/libcmr/cid10013.cc
+           dcmsr/libcmr/cid10033.cc
+           dcmsr/libcmr/cid11.cc
+           dcmsr/libcmr/cid244.cc
+           dcmsr/libcmr/cid29.cc
+           dcmsr/libcmr/cid4020.cc
+           dcmsr/libcmr/cid4021.cc
+           dcmsr/libcmr/cid4031.cc
+           dcmsr/libcmr/cid42.cc
+           dcmsr/libcmr/cid6147.cc
+           dcmsr/libcmr/cid7021.cc
+           dcmsr/libcmr/cid7181.cc
+           dcmsr/libcmr/cid7445.cc
+           dcmsr/libcmr/cid7452.cc
+           dcmsr/libcmr/cid7453.cc
+           dcmsr/libcmr/cid7464.cc
+           dcmsr/libcmr/cid7469.cc
+
+- Updated code definitions for DICOM 2016d:
+  Updated automatically generated code definitions for coding scheme "DCM",
+  "NCIt" and "UMLS" for the 2016d edition of the DICOM standard.
+  Affects: dcmsr/include/dcmtk/dcmsr/codes/dcm.h
+           dcmsr/include/dcmtk/dcmsr/codes/ncit.h
+           dcmsr/include/dcmtk/dcmsr/codes/umls.h
+
+- Update data dictionary for DICOM 2016d.
+  Affects: dcmdata/data/dicom.dic
+           dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+           dcmdata/libsrc/dcdictbi.cc
+
+**** Changes from 2016.10.04 (schlamelcher)
+
+- Fixed a problem in OFtuple's constructor:
+  GCC 6.2.1 wasn't able to compile OFtuple's constructor, which is fixed in
+  this commit.
+  Affects: ofstd/include/dcmtk/ofstd/oftuple.h
+
+**** Changes from 2016.09.22 (riesmeier)
+
+- Added new DCMTK modules "dcmtract" and "dcmpmap":
+  These two (still pretty new) modules were missing in the README file.
+  Also updated description of "dcmsr" module in order to be consistent
+  with the Doxygen file.
+  Affects: README
+
+**** Changes from 2016.09.21 (onken)
+
+- Make Manufacturer type 2, consistency fixes:
+  Thanks to Jörg Riesmeier for the hint and proposed patch.
+  Affects: dcmiod/include/dcmtk/dcmiod/modenhequipment.h
+           dcmiod/include/dcmtk/dcmiod/modequipment.h
+           dcmiod/libsrc/modenhequipment.cc
+           dcmiod/libsrc/modequipment.cc
+
+**** Changes from 2016.09.20 (riesmeier)
+
+- Disable two test cases when building shared libs:
+  Temporarily disable two new test cases when building shared libraries
+  because of unresolvable linker errors (static member "EmptyItem" not
+  found).
+  See DCMTK Bug #694.
+  Affects: dcmsr/tests/Makefile.dep
+           dcmsr/tests/tsrlist.cc
+
+**** Changes from 2016.09.19 (riesmeier)
+
+- Fixed compiler warnings on unused variables:
+  Fixed compiler warnings on unused variables reported by Visual Studio 2010.
+  Affects: dcmjpls/libcharls/intrface.cc
+
+- Fixed linker errors on non-gcc platforms:
+  Fixed linker errors on non-gcc platforms that occurred after adding new
+  "dcmsr" test cases (which make use of the class DSRListOfItems).
+  Affects: dcmsr/tests/tsrlist.cc
+
+**** Changes from 2016.09.17 (riesmeier)
+
+- Added missing source file (new test cases):
+  Added new source file that was missing for the previous commit.
+  Added:   dcmsr/tests/tsrlist.cc
+
+**** Changes from 2016.09.16 (hasenpusch)
+
+- Fixed include paths in DCMTK's package config file:
+  Fixed exporting wrong module include paths inside generated DCMTKConfig.cmake.
+  The specified module include paths went two levels too deep into the folder
+  hierarchy, leading to system include shadowing under certain circumstances.
+  This fixes DCMTK bug #692.
+  Thanks to forum user jakecobb for reporting this bug.
+  Affects: CMake/DCMTKConfig.cmake.in
+
+**** Changes from 2016.09.16 (riesmeier)
+
+- Enhanced template class DSRListOfItems:
+  Added new methods addItems() and getItems() to the template class
+  DSRListOfItems. These new methods expect a vector as a parameter
+  and thus allow for adding/getting multiple items with a single call.
+  Closes DCMTK Feature #572.
+  Affects: dcmsr/include/dcmtk/dcmsr/dsrtlist.h
+           dcmsr/tests/CMakeLists.txt
+           dcmsr/tests/Makefile.in
+           dcmsr/tests/tests.cc
+
+**** Changes from 2016.09.15 (schlamelcher)
+
+- Further fixes for OFvariant:
+  OFvariant's copy constructor and assignment operator are now disabled for
+  types that can not be converted to one of the variant's alternatives (using
+  OFenable_if).
+  Fixed OFvariant's fallback implementation for systems that do not provide
+  memory alignment facilities.
+  Affects: ofstd/include/dcmtk/ofstd/variadic/variant.h
+
+**** Changes from 2016.09.14 (riesmeier)
+
+- Fixed minor issues in modules' documentation:
+  Fixed minor issues in modules' documentation of "dcmpmap" und "dcmtract".
+  Some of these are related to Doxygen (the tool that is used for generating
+  the rendered output) and some have been fixed for reasons of consistency
+  with other DCMTK modules.
+  Affects: dcmpmap/docs/dcmpmap.dox
+           dcmtract/docs/dcmtract.dox
+
+**** Changes from 2016.09.14 (schlamelcher)
+
+- Fixes for OFvariant, dcmiod, dcmseg and dcmpmap:
+  Removed DLL export macros from several template classes as this does not seem
+  to work for templates.
+  Introduced a workaround for older C++ compilers regarding base class
+  definitions in derived classes, e.g. OFvariant<int,char> will not be available
+  as OFvariant (without the template parameters) in derived classes on these
+  compilers. OFvariant and DcmIODImage now define the types 'variant' and
+  'IODImage' resp. instead, which may be used in derived classes for referring
+  to the resp. base class or one of its methods etc.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
+           dcmpmap/libsrc/dpmparametricmapbase.cc
+           dcmseg/libsrc/segdoc.cc
+           ofstd/include/dcmtk/ofstd/variadic/variant.h
+
+**** Changes from 2016.09.13 (schlamelcher)
+
+- Trying possible fix for OFvariant vs DLLs.
+  Affects: ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/libsrc/ofstd.cc
+
+**** Changes from 2016.09.12 (riesmeier)
+
+- Updated coding scheme designator (CP-1567):
+  Updated coding scheme designator for CID 5000 (Languages) based on recently
+  approved CP-1567: The designator changed from "IETF4646" to "RFC5646".
+  Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h
+           dcmsr/libcmr/cid5000.cc
+
+- Added support for recently approved CPs:
+  Added support for CP-1418 and CP-1586 to the data dictionary.
+  These CPs were approved during last week's DICOM WG-06 t-con.
+  Also fixed an attribute name change in "dcmrt" due to retirement.
+  Affects: dcmdata/data/dicom.dic
+           dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+           dcmdata/libsrc/dcdictbi.cc
+           dcmrt/libsrc/drtarics.cc
+
+- Added support for new UIDs from Supplement 121:
+  Added support for new Storage and Query/Retrieve SOP Class UIDs from
+  Supplement 121 (CT Protocol Storage).
+  Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h
+           dcmdata/libsrc/dcuid.cc
+           dcmnet/docs/movescu.man
+           dcmnet/docs/storescp.man
+           dcmnet/etc/storescp.cfg
+           dcmnet/etc/storescu.cfg
+           dcmqrdb/docs/dcmqrscp.man
+
+- Added support for Supplement 121 to dictionary:
+  Added support for the final text version of Supplement 121 (CT Protocol
+  Storage) to the data dictionary.
+  Affects: dcmdata/data/dicom.dic
+           dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+           dcmdata/libsrc/dcdictbi.cc
+
+**** Changes from 2016.09.10 (onken)
+
+- Corrected value checking and setters for VM > 1:
+  Some value checks have been filling the VM parameter incorrectly by providing
+  the value type (like "1C") instead, leading to an error if value checking is
+  not disabled.
+  Thanks to Andrey Fedorov <andrey.fedorov@gmail.com> for the bug report.
+  Also, some type of values (e.g. Floating Point Value) allow more than one
+  value which is now possible using an optional parameter in the related setter()
+  method.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
+           dcmiod/libsrc/iodcontentitemmacro.cc
+
+**** Changes from 2016.09.05 (onken)
+
+- Fixed typos and other enhancements.
+  Affects: dcmpmap/docs/dcmpmap.dox
+
+**** Changes from 2016.09.02 (onken)
+
+- Make sure setValueType() sets correct string value:
+  Due to a copy/paste error setValueType() has constantly set the value "CODE"
+  instead of the value provided by the user.
+  Affects: dcmiod/libsrc/iodcontentitemmacro.cc
+
+**** Changes from 2016.09.01 (onken)
+
+- Remove default value for first parameter:
+  Remove default value for first method parameter in constructor
+  since otherwise Visual Studio moans that it overlaps with the
+  default constructor (which is undefined and private, though).
+  Affects: dcmiod/include/dcmtk/dcmiod/iodmacro.h
+
+- Introduced new module dcmpmap for Parametric Maps:
+  The new dcmpmap module offers an API for creation, loading, accessing and
+  saving DICOM Parametric Map objects as introduced in DICOM Supplement 172.
+  All binary data types supported by the standard (16 bit signed and unsigned
+  integer as well as 32 bit and 64 bit floating point data) are handled by the
+  library.
+  Acknowledgement: This work has been supported in part by the "QIICR" project.
+  QIICR is supported by NIH National Cancer Institute, award U24 CA180918.
+  Added:   dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h
+           dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h
+           dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h
+           dcmfg/libsrc/fgframeanatomy.cc
+           dcmfg/libsrc/fgidentpixeltransform.cc
+           dcmfg/libsrc/fgparametricmapframetype.cc
+           dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
+           dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
+           dcmiod/libsrc/iodcontentitemmacro.cc
+           dcmiod/libsrc/modfloatingpointimagepixel.cc
+           dcmiod/libsrc/modimagepixelbase.cc
+           dcmiod/tests/timagepixel.cc
+           dcmpmap/CMakeLists.txt
+           dcmpmap/Makefile.in
+           dcmpmap/configure
+           dcmpmap/data/Makefile.in
+           dcmpmap/docs/Makefile.in
+           dcmpmap/docs/dcmpmap.dox
+           dcmpmap/etc/Makefile.in
+           dcmpmap/include/CMakeLists.txt
+           dcmpmap/include/Makefile.in
+           dcmpmap/include/dcmtk/dcmpmap/dpmdef.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h
+           dcmpmap/libsrc/CMakeLists.txt
+           dcmpmap/libsrc/Makefile.dep
+           dcmpmap/libsrc/Makefile.in
+           dcmpmap/libsrc/dpmmodparametricmapimage.cc
+           dcmpmap/libsrc/dpmmodparametricmapseries.cc
+           dcmpmap/libsrc/dpmparametricmapbase.cc
+           dcmpmap/libsrc/dpmparametricmapiod.cc
+           dcmpmap/libsrc/dpmtypes.cc
+           dcmpmap/tests/Makefile.dep
+           dcmpmap/tests/Makefile.in
+           ofstd/include/dcmtk/ofstd/ofvriant.h
+           ofstd/include/dcmtk/ofstd/variadic/helpers.h
+           ofstd/include/dcmtk/ofstd/variadic/variant.h
+           ofstd/tests/tvariant.cc
+  Removed: dcmiod/libsrc/iodimage.cc
+  Affects: CMakeLists.txt
+           Makefile
+           config/modules
+           dcmdata/include/dcmtk/dcmdata/dcerror.h
+           dcmfg/include/dcmtk/dcmfg/fgderimg.h
+           dcmfg/include/dcmtk/dcmfg/fgfracon.h
+           dcmfg/include/dcmtk/dcmfg/fginterface.h
+           dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h
+           dcmfg/include/dcmtk/dcmfg/fgtypes.h
+           dcmfg/include/dcmtk/dcmfg/stack.h
+           dcmfg/libsrc/CMakeLists.txt
+           dcmfg/libsrc/Makefile.dep
+           dcmfg/libsrc/fgbase.cc
+           dcmfg/libsrc/fgderimg.cc
+           dcmfg/libsrc/fgfact.cc
+           dcmfg/libsrc/fgfracon.cc
+           dcmfg/libsrc/fgframevoilut.cc
+           dcmfg/libsrc/fgimagedatatype.cc
+           dcmfg/libsrc/fginterface.cc
+           dcmfg/libsrc/fgpixmsr.cc
+           dcmfg/libsrc/fgplanor.cc
+           dcmfg/libsrc/fgplanorvol.cc
+           dcmfg/libsrc/fgplanpo.cc
+           dcmfg/libsrc/fgplanposvol.cc
+           dcmfg/libsrc/fgrealworldvaluemapping.cc
+           dcmfg/libsrc/fgseg.cc
+           dcmfg/libsrc/fgtypes.cc
+           dcmfg/libsrc/fgusimagedescription.cc
+           dcmiod/include/dcmtk/dcmiod/iodcommn.h
+           dcmiod/include/dcmtk/dcmiod/iodimage.h
+           dcmiod/include/dcmtk/dcmiod/iodmacro.h
+           dcmiod/include/dcmtk/dcmiod/iodutil.h
+           dcmiod/include/dcmtk/dcmiod/modbase.h
+           dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h
+           dcmiod/include/dcmtk/dcmiod/modenhequipment.h
+           dcmiod/include/dcmtk/dcmiod/modequipment.h
+           dcmiod/include/dcmtk/dcmiod/modfor.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixel.h
+           dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h
+           dcmiod/include/dcmtk/dcmiod/modsynchronisation.h
+           dcmiod/libsrc/CMakeLists.txt
+           dcmiod/libsrc/Makefile.dep
+           dcmiod/libsrc/Makefile.in
+           dcmiod/libsrc/iodcommn.cc
+           dcmiod/libsrc/iodmacro.cc
+           dcmiod/libsrc/modbase.cc
+           dcmiod/libsrc/modcommoninstanceref.cc
+           dcmiod/libsrc/modenhequipment.cc
+           dcmiod/libsrc/modequipment.cc
+           dcmiod/libsrc/modfor.cc
+           dcmiod/libsrc/modimagepixel.cc
+           dcmiod/libsrc/modmultiframedimension.cc
+           dcmiod/libsrc/modmultiframefg.cc
+           dcmiod/libsrc/modsynchronization.cc
+           dcmiod/libsrc/modusfor.cc
+           dcmiod/tests/CMakeLists.txt
+           dcmiod/tests/Makefile.dep
+           dcmiod/tests/Makefile.in
+           dcmiod/tests/tests.cc
+           dcmnet/libsrc/dstorscu.cc
+           dcmseg/include/dcmtk/dcmseg/segdoc.h
+           dcmseg/libsrc/Makefile.dep
+           dcmseg/libsrc/segdoc.cc
+           dcmtract/libsrc/Makefile.dep
+           doxygen/htmldocs.dox
+           ofstd/include/dcmtk/ofstd/oftraits.h
+           ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/libsrc/Makefile.dep
+           ofstd/libsrc/ofstd.cc
+           ofstd/tests/CMakeLists.txt
+           ofstd/tests/Makefile.dep
+           ofstd/tests/Makefile.in
+           ofstd/tests/tests.cc
+
+**** Changes from 2016.08.23 (riesmeier)
+
+- Fixed typos in comments and log output.
+  Affects: config/Makefile.def.in
+           dcmnet/libsrc/dulparse.cc
+
+**** Changes from 2016.08.22 (onken)
+
+- Optimized iterator usage to speed up execution.
+  Affects: dcmfg/libsrc/fg.cc
+           dcmfg/libsrc/fginterface.cc
+
+**** Changes from 2016.08.06 (onken)
+
+- Updated copyright.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h
+           dcmiod/libsrc/iodcommn.cc
+
+- Create SourceImageItem from DcmDataset as input:
+  Thanks to Christian Herz <cherz@bwh.harvard.edu> for the suggested patch.
+  Affects: dcmfg/include/dcmtk/dcmfg/fgderimg.h
+           dcmfg/libsrc/fgderimg.cc
+
+- Moved import..() functionality into IODCommon:
+  Moved import...() into base class of IOD classes in order to make it usable
+  from all derived IOD implementations, e.g. Segmentation IOD in dcmseg, which
+  directly offered this function before, and Parametric Maps IOD in dcmpmap.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h
+           dcmiod/libsrc/iodcommn.cc
+           dcmseg/include/dcmtk/dcmseg/segdoc.h
+           dcmseg/libsrc/segdoc.cc
+
+**** Changes from 2016.08.03 (onken)
+
+- Switched VR and VM in comment.
+  Affects: dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h
+
+**** Changes from 2016.07.27 (riesmeier)
+
+- Fixed warnings with Clang -Wparentheses-equality:
+  Fixed warnings reported by Clang compiler, which uses -Wparentheses-equality
+  by default, i.e. removed extraneous parentheses around equality comparison.
+  Also fixed various typos in comments.
+  Affects: dcmjpeg/libsrc/djcodece.cc
+
+**** Changes from 2016.07.25 (riesmeier)
+
+- Added explicit type cast to avoid warning:
+  Added explicit typecast to a parameter value in order to avoid a warning
+  reported by MSVC++ on Windows 64-bit systems.
+  Affects: dcmimgle/libsrc/dimoimg.cc
+
+- Changed type of local variable to avoid warning:
+  Changed type of local variable from size_t to unsigned long in order to
+  avoid a warning reported by MSVC++ on Windows 64-bit systems.
+  Affects: dcmjpeg/libsrc/ddpiimpl.cc
+
+**** Changes from 2016.07.19 (hasenpusch)
+
+- Fixed and refactored mutex & rwlock tests:
+  Made sure thread 2 starts after thread 1 claims the first lock.
+  Closes DCMTK bug #689.
+  Affects: ofstd/tests/tthread.cc
+
+**** Changes from 2016.07.18 (riesmeier)
+
+- Fixed typos in comments.
+  Affects: dcmsr/include/dcmtk/dcmsr/dsrsoprf.h
+           dcmsr/libcmr/cid5000.cc
+           oflog/include/dcmtk/oflog/oflog.h
+           oflog/libsrc/oflog.cc
+
+**** Changes from 2016.07.08 (hasenpusch)
+
+- Fixed potential buffer overflow in libcharls:
+  Libcharls' encoding facility now reallocates the given target buffer if
+  the initial capacity happens to be too small.
+  Closes DCMTK bug #688.
+  Affects: dcmjpls/libcharls/decodstr.h
+           dcmjpls/libcharls/encodstr.h
+           dcmjpls/libcharls/header.cc
+           dcmjpls/libcharls/intrface.cc
+           dcmjpls/libcharls/intrface.h
+           dcmjpls/libcharls/pubtypes.h
+           dcmjpls/libcharls/scan.h
+           dcmjpls/libcharls/streams.h
+           dcmjpls/libcharls/util.h
+           dcmjpls/libsrc/djcodece.cc
+
 **** Changes from 2016.06.30 (schlamelcher)
 
 - Updated CHANGES.361 for new development snapshot.
index 5e869a64b7545a0aed27241592945929c6c2e383..84d0e4067458f0b50b6fcd10d3ddb2a0e49797be 100644 (file)
@@ -38,7 +38,7 @@ PROJECT_NAME           = DCMTK
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "Version @DCMTK_VERSION@ 20160630"
+PROJECT_NUMBER         = "Version @DCMTK_VERSION@ 20161102"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
index 770d44788038559514729f0da85ed40d3867e6e7..b4ecff75c6550410c7f00bdd246031ea73d4aa4e 100644 (file)
@@ -17,6 +17,7 @@ DCMTK contains the following sub-packages, each in its own sub-directory:
 \li \ref mod_dcmjpeg
 \li \ref mod_dcmjpls
 \li \ref mod_dcmnet
+\li \ref mod_dcmpmap
 \li \ref mod_dcmpstat
 \li \ref mod_dcmqrdb
 \li \ref mod_dcmrt
index 668ff43390f02a357787e96271f3885da7be9d1a..0ff393ee417d0e8df432857125719de67aded0ca 100644 (file)
@@ -38,7 +38,7 @@ PROJECT_NAME           = "OFFIS DCMTK"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "@DCMTK_VERSION@ 20160630"
+PROJECT_NUMBER         = "@DCMTK_VERSION@ 20161102"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
index d3c602c82422a3ef062f082329438875fff6659c..39d1209f8f4dc938158692892ea50ae94f74e448 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcm2pdf" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcm2pdf" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcm2pdf \- Extract PDF file from DICOM encapsulated PDF
index 2616a6cea4d715dc775809748a11cacefa132759..9b3f16d5daa025c95d64e35df5579195efddda14 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcm2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcm2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcm2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP
index 67efbe61ba8bd5a529459f5524ee04dd7e0e2293..cc1eaac5acbcd427253256b4cf69da2c2beb0b8e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcm2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcm2xml" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcm2xml \- Convert DICOM file and data set to XML
index 58345cf29f75b8a48618dea462662fb2f50c0c41..e9b4d6e709934a3cebde37973a0f3a37cd74ba04 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmcjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmcjpeg" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmcjpeg \- Encode DICOM file to JPEG transfer syntax
index ca504674a56a13ab0a64bb32bbad0c3ec8e1804a..6e5ed70e060634fee1d39662d7890dbd0e6cec71 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmcjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmcjpls" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmcjpls \- Encode DICOM file to JPEG-LS transfer syntax
index 5f9fa60a1697568538d0a2cc106a4d0bc3b91780..ef5b2d0a7a204c7c485acc88482d2ad27b75e40a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmconv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmconv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmconv \- Convert DICOM file encoding
index 3cf798ef7e750bdb9b0d0386c17467482efbd678..d6e959a7a16fa5023e1285ecb8edb86941e06e85 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmcrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmcrle" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmcrle \- Encode DICOM file to RLE transfer syntax
index 38264e810c3069e6ed9cca948e0f09ca5be1db26..29d35e452257d8143ba38f04404607f83b837156 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmdjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdjpeg" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdjpeg \- Decode JPEG-compressed DICOM file
index 4e61ba50bd9b13b27c849a091ad430e7e8d647ce..6eaa71f65c83e4b9f22c5ef523255ff685068f2d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmdjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdjpls" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdjpls \- Decode JPEG-LS compressed DICOM file
index 8af08b0d6ed2b58608cfc5001c096a0783a7efc0..2cf013cfdc71ed0b5bb6c61a65b29d98272557c5 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmdrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdrle" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdrle \- Decode RLE-compressed DICOM file
index ba9a84d2d88714f1cd2af1bf74addc4d20df51c5..1ff9ad5926c98a59b41891b933de6abbe580401e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmdspfn" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdspfn" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdspfn \- Export standard display curves to a text file
index fe755b23095a4bc1e0c394b474cb114d638afeb2..e152cd9272e7e0e16213a0ec5771f1566775a6f8 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdump \- Dump DICOM file and data set
index a0b2280bf10fc01bd4b1e7ade54e1c1aecf9f029..f38408c01aa692ceb5ce1bb3a99a831527e96873 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmftest" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmftest" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmftest \- Test if file uses DICOM part 10 format
index 27b88976ce8f0e4def91dc40dd50cb998f42c5c7..e751617c4fe992fc40b5b845478a4b6f4bc17c83 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmgpdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmgpdir" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmgpdir \- Create a general purpose DICOMDIR
index 7d628f718997b96afd0e6d95b174fd42ee84a689..c8e811d0b2c0a1e53fdbb49a8942c89f87b35849 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmj2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmj2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmj2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF, JPEG or BMP
index 45e8eacaee76b0ad33ff04da0386caa359a5360c..6146f79b82d92151e5fd040a8a75cb82f199c1d1 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcml2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcml2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcml2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP
index 2ff7a1d9890375e4194abed3202ffbf95a83a905..ba6b987a4fae0f9bb9ddc016831dd67edcf6883e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmmkcrv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmmkcrv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmmkcrv \- Add 2D curve data to image
index 2d152a61045a098bf99a330ea5fec9d1ca504c20..9612f23ae17ece55b9de38b62604688e6d038ce9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmmkdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmmkdir" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmmkdir \- Create a DICOMDIR file
index 5b53dab60050b1dd453e014ca38e3579303758c9..f9d8c592e38169f5914b6d8beaec30ed4297423c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmmklut" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmmklut" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmmklut \- Create DICOM look-up tables
index 414f5fe75c56e555a7ad7be1356cd19706a63890..aa7233f92a1204430a0e67db94f01cd925fe195e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmodify" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmodify" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmodify \- Modify DICOM files
index da0e53b574dea06819da4a5646073f08ca1bc687..dd86de6cc1c8cc79b76543376f6a57e9e66eeb1e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmp2pgm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmp2pgm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmp2pgm \- Read DICOM image and presentation state and render bitmap
index cff018b7abc9e46a890c3c477df9de10ca2dcdf4..0cfc7270128aed2d5af525c9b8d25343aa2c6fee 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmprscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmprscp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmprscp \- DICOM basic grayscale print management SCP
index 298279e5353abf273f8133d1783aadf357a3c94f..f04e66d71c3bf6cddc5d69115bb828ab6b5a0bac 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmprscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmprscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmprscu \- Print spooler for presentation state viewer
index dd3102ffd41d5734d1b583ec4331a745ed4c66b2..58fd994de043202b5a7fe0c5c694692d6e881431 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmpschk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpschk" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpschk \- Checking tool for presentation states
index c738149091e83b3d7ca389f7335a75b397cd2c2c..b446d5bf428a1cff0f472002ac069e1d1d5c7c64 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmpsmk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpsmk" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpsmk \- Create DICOM grayscale softcopy presentation state
index cecf66c4404b35d7d3794ba2f0f23c921af896ed..d63081e30cde7b0830caba108172d9dbf963a9eb 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmpsprt" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpsprt" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpsprt \- Read DICOM images and presentation states and render print job
index fc329a4c17a296109223dd2598b7fce1d382e314..610fe0559028c175d00425a9d991ca73c957c305 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmpsrcv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpsrcv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpsrcv \- Network receive for presentation state viewer
index cfd970b8d4e29133a9d19096c91a1c3f5e239b4f..c200656f961739cfbc49a1ef712b267856fed4f6 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmpssnd" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpssnd" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpssnd \- Network send for presentation state viewer
index e02f750b049e29ae55a13313864ecc842e3a1cf7..52f000c76607737790544b75566cc31da247c747 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmqridx" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmqridx" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmqridx \- Register a DICOM image file in an image database index file
index be000417e4d2a260f97f4ea5dcd927fb0173c683..598ccd12f026c85436c2446b75245add729f5f4b 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmqrscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmqrscp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmqrscp \- DICOM image archive (central test node)
@@ -740,6 +740,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
index 0b48e69cbf523d2bb23043c2bc2e6539a82f46b2..7b188f069bdb995da40f38d18603983bacf3c0bf 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmqrti" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmqrti" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmqrti \- The Terminal Initiator Telnet Client Program
index 4dcfd992908acc2b2291688a815211cb7b9fe60a..ef82e11eca0dbef97996da634ee09e2369c3187c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmquant" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmquant" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmquant \- Convert DICOM color images to palette color
index bc2d224b2eed8ef3ad76c8b75529681bd97db2dd..37319246bcba4c9bd68bedc0e84d1a9ee70f143d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmrecv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmrecv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmrecv \- Simple DICOM storage SCP (receiver)
index 77b73e1a4733d03689edfcce01bd48b3254cba78..831e656c8787f369cfe47a11988b0094e3733cfa 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmscale" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmscale" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmscale \- Scale DICOM images
index 2d04ec13b0dc2897da4bf69112c7cca3f1ccb5e6..c29db11b42cdd4718225111bb9a5bda63d4be5b9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmsend" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmsend" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmsend \- Simple DICOM storage SCU (sender)
index 53e718b9b37ce1ca8f18cec7e89222c39b7cc401..2b25d81644b6ad9b9991aea6ae064ac586e43f21 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcmsign" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmsign" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmsign \- Sign and Verify DICOM Files
index aec7f548d01801427ab7c4ea3f452d74efeb41eb..a15317c45063fa9c9ca4f54003660c172e61609a 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dcod2lum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcod2lum" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcod2lum \- Convert hardcopy characteristic curve file to softcopy format
index 93d71b84f0735430bc43c0df5df6a20f37cfa52a..e15eeaac6a682fba025f940fa1321277deff9ea9 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dconvlum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dconvlum" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dconvlum \- Convert VeriLUM files to DCMTK display files
index 69bc3bd43e08465f1acfe84f097ae7f15a73f88b..fd92e0d1c7c75a7372c1ecfacd927a17f61356da 100644 (file)
@@ -1,4 +1,4 @@
-.TH "drtdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "drtdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 drtdump \- Dump DICOM RT file and data set
index 6471461e52aeae42ba233d95566589cfc1749d04..c4b39095222b384e38c411a3eb4343bb073d12e7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dsr2html" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dsr2html" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dsr2html \- Render DICOM SR file and data set to HTML/XHTML
index 49b116cfea641b4593631ef6b09b9d01aabf487a..96a6226fe6a23ee6fac3379b705fc05cfdcff8e8 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dsr2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dsr2xml" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dsr2xml \- Convert DICOM SR file and data set to XML
index 7227495a3c835d2c59492fcf07316d8f37bcc480..371a710a917710e2240345976b95025b3aa4b19e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dsrdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dsrdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dsrdump \- Dump DICOM SR file and data set
index 8ef03f671fd1c1459f326f87eacb134bd01dc471..42e36e4b3de5efe535dd3bd7ffec63aba72d86ea 100644 (file)
@@ -1,4 +1,4 @@
-.TH "dump2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dump2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dump2dcm \- Convert ASCII dump to DICOM file
index a3c9fa9fb53a18a65259c648334baf077235e952..a7dd3aa6d52462a848801b6cfa46206fc62daf73 100644 (file)
@@ -1,4 +1,4 @@
-.TH "echoscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "echoscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 echoscu \- DICOM verification (C-ECHO) SCU
index caf1e429f432094c7c8cea4fb94231775e484890..189c5e7365b3dfb149dfbc401f32a9d1e48cc12c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "findscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "findscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 findscu \- DICOM query (C-FIND) SCU
index d78c93ce95ea8680cc56f3232113d614dbdbcaf5..3effdf236c0497e39772983f1f7e1e262c4f901e 100644 (file)
@@ -1,4 +1,4 @@
-.TH "getscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "getscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 getscu \- DICOM retrieve (C-GET) SCU
index a95358c9c70c1a3ef8cf1b49d1ba3bc057065d27..f96888d51556df4ff361b5a4f88162459b0479ff 100644 (file)
@@ -1,4 +1,4 @@
-.TH "img2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "img2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 img2dcm \- Convert standard image formats into DICOM format
index 423b320a5124e14ae7afa5e368c289d5105da0d8..e478f0209ff04d472efea48a13bc2bb26db91fa2 100644 (file)
@@ -1,4 +1,4 @@
-.TH "movescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "movescu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 movescu \- DICOM retrieve (C-MOVE) SCU
@@ -508,6 +508,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
index 9c15deb83f3b2be55bf30d193369874207061f8f..e6a15b0c4d27a63f119af6033740e56c309d5d49 100644 (file)
@@ -1,4 +1,4 @@
-.TH "pdf2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "pdf2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 pdf2dcm \- Convert PDF file to DICOM
index 00ac7d76fc0cdb7176226c744c0b78ff291e0a15..6bca14bddd00fbc9555b66dd1c2474b468669af8 100644 (file)
@@ -1,4 +1,4 @@
-.TH "storescp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "storescp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 storescp \- DICOM storage (C-STORE) SCP
@@ -602,6 +602,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
index 275ed6a7be45e219c2c97f91b2b8c1cd717399c2..9cfed80f55b69d848230bc0d365086ecfa93a4dd 100644 (file)
@@ -1,4 +1,4 @@
-.TH "storescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "storescu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 storescu \- DICOM storage (C-STORE) SCU
index a968b58facd92e529eeb2da6a034f5bbe31dc523..10d3f03461fe6488fce632987d834a429f93bb2c 100644 (file)
@@ -1,4 +1,4 @@
-.TH "termscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "termscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 termscu \- DICOM termination SCU
index 0e129993a5caa1a63adba5176ee436dbff0dd947..f98d3dfa04fc49e28ab143d5278bf1872d22a6e7 100644 (file)
@@ -1,4 +1,4 @@
-.TH "wlmscpfs" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "wlmscpfs" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 wlmscpfs \- DICOM Basic Worklist Management SCP (based on data files)
index 24bcd7b1b591772fd5ac4dd325df030eb30f079f..9096d919f68366a7d4d3a2cbcad60ffe80eb632d 100644 (file)
@@ -1,4 +1,4 @@
-.TH "xml2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "xml2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 xml2dcm \- Convert XML document to DICOM file or data set
index cee3c230a83a6314533a949933a7ec9a56256812..a515aa18a15dcbd833538a207545aabbbf3a5e50 100644 (file)
@@ -1,4 +1,4 @@
-.TH "xml2dsr" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "xml2dsr" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 xml2dsr \- Convert DICOM SR file and data set to XML
index 7f9829b313444eca29a9e35ac2e434837b83178b..bb8ddbcbd5ec395b45b49222425a15d44fcfb593 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2009-2011, OFFIS e.V.
+ *  Copyright (C) 2009-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -63,7 +63,7 @@ public:
         ERROR_LOG_LEVEL = dcmtk::log4cplus::ERROR_LOG_LEVEL,
         /// fatal: very severe error events that will presumably lead the application to abort
         FATAL_LOG_LEVEL = dcmtk::log4cplus::FATAL_LOG_LEVEL,
-        /// internal: turn off logging competely
+        /// internal: turn off logging completely
         OFF_LOG_LEVEL = dcmtk::log4cplus::OFF_LOG_LEVEL
     };
 
index c8a174199d5c46895d6c4edeedde8152e6f16bc7..fa14b31b871602674f5656a1deea4bdb93a0ab7f 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2009-2011, OFFIS e.V.
+ *  Copyright (C) 2009-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -184,7 +184,7 @@ void OFLog::configureFromCommandLine(OFCommandLine &cmd,
 
         app.checkValue(cmd.getValue(logConfig));
 
-        // check wether config file exists at all and is readable
+        // check whether config file exists at all and is readable
         if (!OFStandard::fileExists(logConfig))
             app.printError("Specified --log-config file does not exist");
         if (!OFStandard::isReadable(logConfig))
index a05b4a7f03d5de6e25875eef6bc0765cee677397..a8a4e8b33b7e6a342a05d179e24243d20ed82f99 100644 (file)
@@ -100,7 +100,7 @@ template<typename T,typename F>
 struct OFconditional<OFFalse,T,F> { typedef F type; };
 
 template<typename T,T Value>
-struct OFintegral_constant { static const T value = Value; };
+struct OFintegral_constant { typedef OFintegral_constant type; static const T value = Value; };
 
 template<typename T,T Value>
 const T OFintegral_constant<T,Value>::value;
index 40009934ba2a57933fc832b0737383683864a71e..46341af5c2967022148305ab183b94cd54f463ff 100644 (file)
@@ -297,8 +297,7 @@ template<>
 struct OFtuple_content<>
 {
     OFtuple_content() {}
-    template<typename X>
-    OFtuple_content(const X&) {}
+    OFtuple_content(va_list*) {}
     template<typename X>
     void assign(const X&) {}
     template<typename X>
index 0dd8734258e5a8fe3f753ac0bd6668b440782c23..db7f71f0ad03ccb4b36b2598aff45dfa95cf906f 100644 (file)
 
 #ifdef DCMTK_USE_CXX11_STL
 #include <utility>
+#include <tuple>
 #define OFmove std::move
 #define OFswap std::swap
-#define OFget std::get
 #define OFMake_pair std::make_pair
 
+template<std::size_t Index,typename T>
+constexpr auto OFget( T&& t ) -> decltype( std::get<Index>( std::forward<T>( t ) ) )
+{
+    return std::get<Index>( std::forward<T>( t ) );
+}
+
+template<typename X,typename T>
+constexpr auto OFget( T&& t ) -> decltype( std::get<X>( std::forward<T>( t ) ) )
+{
+    return std::get<X>( std::forward<T>( t ) );
+}
+
 template<typename K,typename V>
 using OFPair = std::pair<K,V>;
 
@@ -525,4 +537,343 @@ const typename OFtuple_element<Index,Tuple>::type& OFget( const Tuple& tuple );
 
 #endif // NOT C++11
 
+#ifndef DOXYGEN
+
+// OFin_place hacks, look at the doxygen documentation instead if
+// you know what's good for you!
+class DCMTK_OFSTD_EXPORT OFin_place_tag { OFin_place_tag(); };
+typedef OFin_place_tag(&OFin_place_t)();
+#define OFin_place_type_t(T) OFin_place_tag(&)(T&)
+#define OFin_place_index_t(I) OFin_place_tag(&)(OFintegral_constant<size_t,I>&)
+DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place();
+template<typename T>
+OFin_place_tag OFin_place(T&) { return OFin_place(); }
+template<size_t I>
+OFin_place_tag OFin_place(OFintegral_constant<size_t,I>&) { return OFin_place(); }
+
+#else // NOT DOXYGEN
+
+/** @defgroup OFin_place_helpers_brief
+ *  @details Tools for in-place construction of objects, e.g. certain OFvariant alternatives.
+ *  @defgroup OFin_place_helpers Tools for in-place construction
+ *  @details
+ *  <b><em style="color:#7f0000">#include</em> <span class="keyword">"dcmtk/ofstd/ofutil.h"</span></b><br><br>
+ *  @copydoc OFin_place_helpers_brief
+ *  <table class="memberdecls">
+ *    <tr class="heading">
+ *      <td colspan="2"><div><h2 class="groupheader">Type Definitions</h2></div></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_t">OFin_place_t</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">A type for tagging an in-place constructor as such. <a href="#OFin_place_t">More...</a></td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template&lt;typename T&gt;</td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_type_t">OFin_place_type_t(T)</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">A type for tagging an in-place constructor for a certain type as such. <a href="#OFin_place_type_t">More...</a></td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template&lt;size_t I&gt;</td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_index_t">OFin_place_index_t(I)</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">A type for tagging an in-place constructor based on a certain index  as such. <a href="#OFin_place_index_t">More...</a></td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *  </table>
+ *  <table class="memberdecls">
+ *    <tr class="heading">
+ *      <td colspan="2"><div><h2 class="groupheader">Global Constants</h2></div></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><a href="#OFin_place_t">OFin_place_t</a></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_generic">OFin_place</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">
+ *        A constant of type <a href="#OFin_place_t">OFin_place_t</a> that may be used for in-place construction.
+ *        <a href="#OFin_place_generic">More...</a>
+ *      </td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template&lt;typename T&gt;</td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><a href="#OFin_place_type_t">OFin_place_type_t(T)</a></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_type">OFin_place&lt;T&gt;</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">
+ *        A constant of type <a href="#OFin_place_type_t">OFin_place_type_t(T)</a> that may be used for in-place construction.
+ *        <a href="#OFin_place_type">More...</a>
+ *      </td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template&lt;size_t I&gt;</td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><a href="#OFin_place_index_t">OFin_place_index_t(I)</a></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_index">OFin_place&lt;I&gt;</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">
+ *        A constant of type <a href="#OFin_place_index_t">OFin_place_index_t(I)</a> that may be used for in-place construction.
+ *        <a href="#OFin_place_index">More...</a>
+ *      </td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *  </table>
+ *  <h2 class="groupheader">Type Definition Documentation</h2>
+ *  @anchor OFin_place_t
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memname">
+ *        <span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em> OFin_place_t
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A type for tagging an in-place constructor as such.<br>
+ *      <dl></dl>
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename T>
+ *      class Wrapper
+ *      {
+ *      public:
+ *        // Will copy construct the wrapped value from a T.
+ *        Wrapper( const T& t );
+ *
+ *        // Will in-place construct the value from the given arguments,
+ *        // calling T( arguments... ) internally, without unnecessary
+ *        // copies.
+ *        template<typename... Arguments>
+ *        Wrapper( OFin_place_t, Arguments... arguments );
+ *
+ *      private:
+ *        // ... wrapper implementation ...
+ *      };
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_type_t
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<typename T></div>
+ *      <div class="memname">
+ *        <span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em> OFin_place_type_t(T)
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A type for tagging an in-place constructor for a certain type as such.
+ *      <br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd><span class="paramname">T</span> the type this in-pace constructor handles, i.e. the type that will be constructed.</dd>
+ *      </dl>
+ *      @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_type_t is implemented
+ *        using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union
+ *      {
+ *      public:
+ *        // Will copy construct the wrapped value as an A from a.
+ *        Union( const A& a );
+ *
+ *        // Will copy construct the wrapped value as a B from b.
+ *        Union( const B& b );
+ *
+ *        // Will in-place construct the value as an A from the given
+ *        // arguments, calling A( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_type_t(A), Arguments... arguments );
+ *
+ *        // Will in-place construct the value as a B from the given
+ *        // arguments, calling B( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_type_t(B), Arguments... arguments );
+ *
+ *      private:
+ *        // ... union implementation ...
+ *      };
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_index_t
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<size_t I></div>
+ *      <div class="memname">
+ *        <span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em> OFin_place_index_t(I)
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A type for tagging an in-place constructor for a certain index as such.<br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd>
+ *          <span class="paramname">I</span> the index this in-pace constructor handles, i.e. the zero
+ *          based index of the type that will be constructed.
+ *        </dd>
+ *      </dl>
+ *      @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_index_t is implemented
+ *        using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union
+ *      {
+ *      public:
+ *        // Will copy construct the wrapped value as an A from a.
+ *        Union( const A& a );
+ *
+ *        // Will copy construct the wrapped value as a B from b.
+ *        Union( const B& b );
+ *
+ *        // Will in-place construct the value as an A from the given
+ *        // arguments, calling A( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        // This will even work if A and B refer to the same type.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_index_t(0), Arguments... arguments );
+ *
+ *        // Will in-place construct the value as a B from the given
+ *        // arguments, calling B( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        // This will even work if A and B refer to the same type.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_index_t(1), Arguments... arguments );
+ *
+ *      private:
+ *        // ... union implementation ...
+ *      };
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  <h2 class="groupheader">Global Constant Documentation</h2>
+ *  @anchor OFin_place_generic
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memname">
+ *        <a href="#OFin_place_t">OFin_place_t</a> OFin_place
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A constant of type <a href="#OFin_place_t">OFin_place_t</a> that may be used for in-place construction.<br>
+ *      @remarks OFin_place is actually an overloaded function, but instead of calling it
+ *        (which one should never do), its address is used as a tag, since the type of
+ *        its address differs depending on which overload and template parameters are used.
+ *        See http://en.cppreference.com/w/cpp/utility/in_place for more information.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename T>
+ *      class Wrapper; // see OFin_place_t example
+ *      // ...
+ *      // will construct an OFString and then copy construct the value in the wrapper
+ *      Wrapper<OFString>( "Hello World" );
+ *      // will in-place construct the value in the wrapper
+ *      Wrapper<OFString>( OFin_place, "Hello World" );
+ *      // this also works with multiple arguments:
+ *      // will take only the fist five characters of the const char*
+ *      Wrapper<OFString>( OFin_place, "Hello World", 5 );
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_type
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<typename T></div>
+ *      <div class="memname">
+ *        <a href="#OFin_place_type_t">OFin_place_type_t(T)</a> OFin_place<T>
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A constant of type <a href="#OFin_place_type_t">OFin_place_type_t(T)</a> that may be used for in-place construction.<br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd><span class="paramname">T</span> the type for selecting an in-pace constructor, i.e. the type that will be constructed.</dd>
+ *      </dl>
+ *      @remarks OFin_place is actually an overloaded function, but instead of calling it
+ *        (which one should never do), its address is used as a tag, since the type of
+ *        its address differs depending on which overload and template parameters are used.
+ *        See http://en.cppreference.com/w/cpp/utility/in_place for more information.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union; // see OFin_place_type_t example
+ *      // ...
+ *      // will construct an OFString and then copy construct the value inside the union
+ *      Union<int,OFString>( OFString( "Hello World" ) );
+ *      // will in-place construct an OFString value inside the union
+ *      // with only the fist five characters
+ *      Union<int,OFString>( OFin_place<OFString>, "Hello World", 5 );
+ *      // will construct an integer value inside the union by casting
+ *      // the address of the character array constant to int
+ *      Union<int,OFString>( OFin_place<int>, "Hello World" );
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_index
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<size_t I></div>
+ *      <div class="memname">
+ *        <a href="#OFin_place_index_t">OFin_place_index_t(I)</a> OFin_place&lt;I&gt;
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A constant of type <a href="#OFin_place_index_t">OFin_place_index_t(I)</a> that may be used for in-place construction.<br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd>
+ *          <span class="paramname">I</span> the index for selecting an in-pace constructor, i.e. the
+ *          zero based index of the type that will be constructed.
+ *        </dd>
+ *      </dl>
+ *      @remarks OFin_place is actually an overloaded function, but instead of calling it
+ *        (which one should never do), its address is used as a tag, since the type of
+ *        its address differs depending on which overload and template parameters are used.
+ *        See http://en.cppreference.com/w/cpp/utility/in_place for more information.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union; // see OFin_place_index_t example
+ *      // ...
+ *      // error, cannot determine which constructor shall be used,
+ *      // since both take an int
+ *      Union<int,int>( 3 );
+ *      // will in-place construct an int value inside the union
+ *      // tagging it as an A
+ *      Union<int,int>( OFin_place<0>, 3 );
+ *      // will in-place construct an int value inside the union
+ *      // tagging it as a B
+ *      Union<int,int>( OFin_place<1>, 3 );
+ *      @endcode
+ *    </div>
+ *  </div>
+ */
+
+#endif // DOXYGEN
+
 #endif // OFUTIL_H
diff --git a/ofstd/include/dcmtk/ofstd/ofvriant.h b/ofstd/include/dcmtk/ofstd/ofvriant.h
new file mode 100644 (file)
index 0000000..f617b4e
--- /dev/null
@@ -0,0 +1,736 @@
+/*
+ *
+ *  Copyright (C) 2016, OFFIS e.V.
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation were developed by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  ofstd
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Implementing tagged unions similar to C++17's std::variant.
+ *
+ */
+
+#ifndef OFVARIANT_H
+#define OFVARIANT_H
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+/** @file
+ *  Declares OFvariant and related functionality.
+ *  @defgroup ofvisit_variant OFvisit &ndash; OFvariant
+ *  Apply a visitor to an OFvariant object.
+ *  @see @ref ofget_variant "OFget" &ndash; @copybrief ofget_variant
+ *  @defgroup ofget_variant OFget &ndash; OFvariant
+ *  Get a pointer to the value stored in an OFvariant holding the selected alternative.
+ *  @see @ref ofvisit_variant "OFvisit" &ndash; @copybrief ofvisit_variant
+ */
+
+#ifdef DCMTK_USE_CXX11_STL
+#include <type_traits>
+#include <cassert>
+#include <limits>
+
+template<std::size_t,typename... Alternatives>
+struct OFvariant_traits
+{
+    using is_constructible = std::false_type;
+    static constexpr inline std::size_t alignment() { return 1; }
+    static constexpr inline std::size_t size() { return 0; }
+    static void index_of();
+};
+
+template<std::size_t Index,typename Alternative0,typename... Alternatives>
+struct OFvariant_traits<Index,Alternative0,Alternatives...>
+: OFvariant_traits<Index+1,Alternatives...>
+{
+    using OFvariant_traits<Index+1,Alternatives...>::index_of;
+
+    using first_alternative = Alternative0;
+
+    static constexpr inline std::size_t alignment()
+    {
+        struct test { alignas(OFvariant_traits<Index+1,Alternatives...>::alignment()) first_alternative a; };
+        return alignof(test);
+    }
+
+    static constexpr inline std::size_t size()
+    {
+        return sizeof( first_alternative ) > OFvariant_traits<Index+1,Alternatives...>::size()
+        ?
+            sizeof( first_alternative )
+        :
+            OFvariant_traits<Index+1,Alternatives...>::size()
+        ;
+    }
+
+    static std::integral_constant<std::size_t,Index> index_of( first_alternative );
+};
+
+template<std::size_t AlternativeCount,typename... IndexAlternatives>
+struct OFvariant_select_index_type {};
+
+template<std::size_t AlternativeCount,typename IndexAlternative0,typename... IndexAlternatives>
+struct OFvariant_select_index_type<AlternativeCount,IndexAlternative0,IndexAlternatives...>
+{
+    using type = typename std::conditional
+    <
+        AlternativeCount <= std::numeric_limits<IndexAlternative0>::max(),
+        std::enable_if<true,IndexAlternative0>,
+        OFvariant_select_index_type<AlternativeCount,IndexAlternatives...>
+    >::type::type;
+};
+
+template<typename...>
+class OFvariant;
+
+template<std::size_t Index,typename Variant>
+struct OFvariant_alternative;
+
+template<std::size_t Index,typename Alternative0,typename... Alternatives>
+struct OFvariant_alternative<Index,OFvariant<Alternative0,Alternatives...>>
+: OFvariant_alternative<Index - 1,OFvariant<Alternatives...>> {};
+
+template<typename Alternative0,typename... Alternatives>
+struct OFvariant_alternative<0,OFvariant<Alternative0,Alternatives...>>
+{
+    using type = Alternative0;
+};
+
+template<typename... Alternatives>
+class OFvariant
+{
+    using traits = OFvariant_traits<0,Alternatives...>;
+    using index_type = typename OFvariant_select_index_type<sizeof...(Alternatives),std::uint8_t,std::uint16_t,std::uint32_t,std::uint64_t>::type;
+    template<typename T>
+    using index_of = decltype(traits::index_of(std::declval<T>()));
+
+public:
+    using variant = OFvariant;
+
+    OFvariant()
+    : m_Content()
+    , m_Index( 0 )
+    {
+        new (m_Content) typename traits::first_alternative;
+    }
+
+    template<typename T,index_type Index = index_of<T>()>
+    OFvariant( T&& t )
+    : m_Content()
+    , m_Index( Index )
+    {
+        new (m_Content) typename OFvariant_alternative<Index,OFvariant>::type( std::forward<T>( t ) );
+    }
+
+    OFvariant( OFvariant& rhs )
+    : OFvariant( const_cast<const OFvariant&>( rhs ) )
+    {
+
+    }
+
+    OFvariant( const OFvariant& rhs )
+    : m_Content()
+    , m_Index( rhs.index() )
+    {
+        copy_construct( rhs );
+    }
+
+    OFvariant( OFvariant&& rhs )
+    : m_Content()
+    , m_Index( rhs.index() )
+    {
+        move_construct( std::move( rhs ) );
+    }
+
+    template<typename T,index_type Index = index_of<T>()>
+    OFvariant& operator=( T&& t )
+    {
+        if( m_Index != Index )
+        {
+            destroy();
+            m_Index = Index;
+            new (m_Content) typename OFvariant_alternative<Index,OFvariant>::type( std::forward<T>( t ) );
+        }
+        else
+        {
+            *reinterpret_cast<typename OFvariant_alternative<Index,OFvariant>::type*>( m_Content ) = std::forward<T>( t );
+        }
+        return *this;
+    }
+
+    OFvariant& operator=( OFvariant& rhs )
+    {
+        return *this = const_cast<const OFvariant&>( rhs );
+    }
+
+    OFvariant& operator=( const OFvariant& rhs )
+    {
+        if( this != &rhs )
+        {
+            if( m_Index != rhs.m_Index )
+            {
+                destroy();
+                m_Index = rhs.m_Index;
+                copy_construct( rhs );
+            }
+            else
+            {
+                using functor = void(OFvariant::*)(const OFvariant&);
+                static const functor assignment[] =
+                {
+                    &OFvariant::template copy_assign_alternative<Alternatives>...
+                };
+                (this->*assignment[m_Index])( rhs );
+            }
+        }
+        return *this;
+    }
+
+    OFvariant& operator=( OFvariant&& rhs )
+    {
+        if( this != &rhs )
+        {
+            if( m_Index != rhs.m_Index )
+            {
+                destroy();
+                m_Index = rhs.m_Index;
+                move_construct( std::move( rhs ) );
+            }
+            else
+            {
+                using functor = void(OFvariant::*)(OFvariant&&);
+                static const functor assignment[] =
+                {
+                    &OFvariant::template move_assign_alternative<Alternatives>...
+                };
+                (this->*assignment[m_Index])( std::move( rhs ) );
+            }
+        }
+        return *this;
+    }
+
+    ~OFvariant()
+    {
+        destroy();
+    }
+
+    std::size_t index() const
+    {
+        return m_Index;
+    }
+
+private:
+    template<typename T,typename... Xs>
+    friend T* OFget( OFvariant<Xs...>* );
+    template<typename T,typename... Xs>
+    friend const T* OFget( const OFvariant<Xs...>* );
+    template<typename ReturnType,typename FN,typename... Xs>
+    friend ReturnType OFvisit( FN&&, OFvariant<Xs...>& );
+    template<typename ReturnType,typename FN,typename... Xs>
+    friend ReturnType OFvisit( FN&&, const OFvariant<Xs...>& );
+
+    template<typename Alternative>
+    void copy_construct_alternative( const OFvariant& rhs )
+    {
+        new (m_Content) Alternative( *reinterpret_cast<const Alternative*>( rhs.m_Content ) );
+    }
+
+    template<typename Alternative>
+    void move_construct_alternative( OFvariant&& rhs )
+    {
+        new (m_Content) Alternative( std::move( *reinterpret_cast<Alternative*>( rhs.m_Content ) ) );
+    }
+
+    template<typename Alternative>
+    void copy_assign_alternative( const OFvariant& rhs )
+    {
+        *reinterpret_cast<Alternative*>( m_Content ) = *reinterpret_cast<const Alternative*>( rhs.m_Content );
+    }
+
+    template<typename Alternative>
+    void move_assign_alternative( OFvariant&& rhs )
+    {
+        *reinterpret_cast<Alternative*>( m_Content ) = std::move( *reinterpret_cast<Alternative*>( rhs.m_Content ) );
+    }
+
+    template<typename Alternative>
+    void destructor()
+    {
+        reinterpret_cast<Alternative*>( m_Content )->~Alternative();
+    }
+
+    template<typename ReturnType,typename Alternative,typename FN>
+    ReturnType visit_alternative( FN&& fn )
+    {
+        return fn( *reinterpret_cast<Alternative*>( m_Content ) );
+    }
+
+    template<typename ReturnType,typename Alternative,typename FN>
+    ReturnType const_visit_alternative( FN&& fn ) const
+    {
+        return fn( *reinterpret_cast<const Alternative*>( m_Content ) );
+    }
+
+    void copy_construct( const OFvariant& rhs )
+    {
+        using functor = void(OFvariant::*)(const OFvariant&);
+        static const functor constructor[] =
+        {
+            &OFvariant::template copy_construct_alternative<Alternatives>...
+        };
+        assert( m_Index < sizeof...(Alternatives) );
+        (this->*constructor[m_Index])( rhs );
+    }
+
+    void move_construct( OFvariant&& rhs )
+    {
+        using functor = void(OFvariant::*)(OFvariant&&);
+        static const functor constructor[] =
+        {
+            &OFvariant::template move_construct_alternative<Alternatives>...
+        };
+        assert( m_Index < sizeof...(Alternatives) );
+        (this->*constructor[m_Index])( std::move( rhs ) );
+    }
+
+    void destroy()
+    {
+        using functor = void(OFvariant::*)();
+        static const functor destructor[] =
+        {
+            &OFvariant::template destructor<Alternatives>...
+        };
+        assert( m_Index < sizeof...(Alternatives) );
+        (this->*destructor[m_Index])();
+    }
+
+    alignas(traits::alignment()) std::uint8_t m_Content[traits::size()];
+    index_type m_Index;
+};
+
+template<std::size_t Index,typename X,typename T0,typename... Tn>
+struct OFvariant_index_of_type
+: OFvariant_index_of_type<Index + 1,X,Tn...> {};
+
+template<std::size_t Index,typename X,typename... Tn>
+struct OFvariant_index_of_type<Index,X,X,Tn...>
+: std::integral_constant<std::size_t,Index> {};
+
+template<typename T,typename... Alternatives>
+constexpr bool OFholds_alternative( const OFvariant<Alternatives...>& v )
+{
+    return v.index() == OFvariant_index_of_type<0,T,Alternatives...>::value;
+}
+
+template<typename T,typename... Alternatives>
+T* OFget( OFvariant<Alternatives...>* v )
+{
+    if( OFholds_alternative<T>( *v ) )
+        return reinterpret_cast<T*>( v->m_Content );
+    return nullptr;
+}
+
+template<typename T,typename... Alternatives>
+const T* OFget( const OFvariant<Alternatives...>* v )
+{
+    if( OFholds_alternative<T>( *v ) )
+        return reinterpret_cast<const T*>( v->m_Content );
+    return nullptr;
+}
+
+template<typename ReturnType,typename FN,typename... Alternatives>
+ReturnType OFvisit( FN&& fn, OFvariant<Alternatives...>& v )
+{
+    using functor = ReturnType(OFvariant<Alternatives...>::*)(FN&&);
+    static const functor visit[] =
+    {
+        &OFvariant<Alternatives...>::template visit_alternative<ReturnType,Alternatives,FN>...
+    };
+    return (v.*visit[v.index()])( std::forward<FN>( fn ) );
+}
+
+template<typename ReturnType,typename FN,typename... Alternatives>
+ReturnType OFvisit( FN&& fn, const OFvariant<Alternatives...>& v )
+{
+    using functor = ReturnType(OFvariant<Alternatives...>::*)(FN&&) const;
+    static const functor visit[] =
+    {
+        &OFvariant<Alternatives...>::template const_visit_alternative<ReturnType,Alternatives,FN>...
+    };
+    return (v.*visit[v.index()])( std::forward<FN>( fn ) );
+}
+
+#elif !defined(DOXYGEN) // fallback implementation
+
+// Include the actual implementation (that emulates variadic templates)
+#include "dcmtk/ofstd/variadic/variant.h"
+
+#else // NOT C++11 && NOT DOXYGEN
+
+/** A class template that represents a type-safe union.
+ *  <b><em>#include</em> "dcmtk/ofstd/ofvriant.h"</b> for using this class<br>
+ *  @headerfile ofvriant.h "dcmtk/ofstd/ofvriant.h"
+ *  @tparam Alternatives a set of types that may be stored in this variant. All types must be (possibly
+ *    cv-qualified) object types.
+ *  @details
+ *  OFvariant is a custom implementation of a subset of C++17's std::variant,
+ *  see http://en.cppreference.com/w/cpp/utility/variant for a description of std::variant.
+ *  An instance of OFvariant at any given time holds a value of one of its alternative types.
+ *  As with unions, if a variant holds a value of some object type T, the object representation of T is
+ *  allocated directly within the object representation of the variant itself if possible.
+ *  @note If no suitable alignment specifiers were available for the target platform, OFvariant will
+ *    use a fallback implementation that stores the alternative on the heap &ndash; as opposite to std::variant.
+ *  @details
+ *  The preferred way to access an OFvariant object is visitation utilizing @ref ofvisit_variant "OFvisit".
+ *  If a certain alternative is expected to be held by the variant, @ref ofget_variant "OFget" may be used to
+ *  access it directly.
+ *  @see @ref ofvisit_variant "OFvisit" &ndash; @copybrief ofvisit_variant
+ *  @see @ref ofget_variant "OFget" &ndash; @copybrief ofget_variant
+ *  @see OFmonostate &ndash; @copybrief OFmonostate
+ *  @see @ref OFin_place_helpers "OFin_place" &ndash; @copydoc OFin_place_helpers_brief
+ */
+template<typename... Alternatives>
+class OFvariant
+{
+public:
+
+    /** Constructs a variant holding a default constructed value of the first alternative.
+     *  @pre The first alternative must be default constructible.
+     *  @see OFmonostate &ndash; @copybrief OFmonostate
+     */
+    OFvariant();
+
+    /** Copy constructs a variant holding a copy of the value rhs holds.
+     *  @param rhs a const reference to another object of equal type.
+     *  @pre All alternatives must be copy constructible.
+     */
+    OFvariant( const OFvariant& rhs );
+
+    /** Move constructs a variant by moving the value rhs holds.
+     *  @param rhs an rvalue reference to another object of equal type.
+     *  @pre All alternatives must be move constructible.
+     *  @note This constructor is currently only available if C++11 support was enabled.
+     */
+    OFvariant( OFvariant&& rhs );
+
+    /** Constructs a variant holding the alternative that most closely matches the given
+     *  argument.
+     *  @tparam T the type of the argument, will be deduced automatically.
+     *  @param t an object of type `T` that will be converted to one of the alternatives.
+     *  @precondition There must be at least one alternative that can be constructed from
+     *    the given parameter `t` and there must be exactly one such alternative that
+     *    takes precedence over the others.
+     *  @attention t will be perfectly forwarded if C++11 support is available, i.e. the
+     *    alternative may be move constructed from `t` if possible. Support for perfect
+     *    forwarding is NOT available without C++11 support, therefore the alternative
+     *    will be copy constructed in this case, this means: <b>the selected alternative
+     *    must be copy constructible if pre C++11 compilers shall be supported</b>.
+     *  @details
+     *  <h3>Usage Example:</h3>
+     *  @code{.cpp}
+     *  OFvariant<int,float,long>( 3 );      // OK
+     *  OFvariant<int,int>( 3 );             // ill formed, both alternatives take equal precedence
+     *  OFvariant<OFString,OFBool>( "abc" ); // OK, but chooses OFBool!
+     *  @endcode
+     */
+    template<typename T>
+    OFvariant( T t );
+
+    /** Destroys the value that the variant currently holds.
+     */
+    ~OFvariant();
+
+    /** Copy assigns the value rhs holds to *this.
+     *  @param rhs a const reference to another object of equal type.
+     *  @pre all alternatives must be copy constructible and copy assignable.
+     *  @return `*this`
+     *  @post
+     *  @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs`
+     *    is copy assigned to the value contained in `*this`.
+     *  @li if `*this` and `rhs` hold different alternatives, the value contained in `*this`
+     *    is destroyed and a new one is copy constructed from the value contained in `rhs`.
+     */
+    OFvariant& operator=( const OFvariant& rhs );
+
+    /** Move assigns the value rhs holds to *this.
+     *  @param rhs an rvalue reference to another object of equal type.
+     *  @pre all alternatives must be move constructible and move assignable.
+     *  @return `*this`
+     *  @post
+     *  @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs`
+     *    is move assigned to the value contained in `*this`.
+     *  @li if `*this` and `rhs` hold different alternatives, the value contained in `*this`
+     *    is destroyed and a new one is move constructed from the value contained in `rhs`.
+     *  @note This constructor is currently only available if C++11 support was enabled.
+     */
+    OFvariant& operator=( OFvariant&& rhs );
+
+    /** Converts the given argument to one of the alternatives and assigns it to *this.
+     *  @tparam T the type of the argument, will be deduced automatically.
+     *  @param t an object of type `T` that will be converted to one of the alternatives
+     *    for assignment.
+     *  @return `*this`
+     *  @pre There must be at least one alternative that can be constructed from
+     *    the given parameter `t` and there must be exactly one such alternative that
+     *    takes precedence over the others.
+     *  @attention `t` will be perfectly forwarded if C++11 support is available, i.e. the
+     *    alternative may be move constructed from t if possible. Support for perfect
+     *    forwarding is NOT available without C++11 support, therefore the alternative
+     *    will be copy constructed in this case, this means: <b>the selected alternative
+     *    must be copy constructible if pre C++11 compilers shall be supported</b>.
+     *  @details
+     *  <h3>Usage Example:</h3>
+     *  @code{.cpp}
+     *  OFvariant<int,float,long> v1;
+     *  v1 = 3                         // OK
+     *  OFvariant<int,int> v2;
+     *  v2 = 3                         // ill formed, both alternatives take equal precedence
+     *  OFvariant<OFString,OFBool> v3;
+     *  v3 = "abc";                    // OK, but chooses OFBool!
+     *  @endcode
+     */
+    template<typename T>
+    OFvariant& operator=( T t );
+
+    /** Get the index of alternative that is currently being held.
+     *  @return the zero based index of that alternative that is currently being held by
+     *    `*this`, i.e. `0` for the first alternative, `1` for the second, etc.
+     */
+    size_t index() const;
+};
+
+/** Try to get a pointer to the given alternative from an OFvariant object.
+ *  @ingroup ofget_variant
+ *  @relates OFvariant
+ *  @tparam Alternative the chosen alternative that shall be accessed.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param v a reference to an OFvariant object potentially holding `Alternative`.
+ *  @return the address of the contained value of type `Alternative` if such a value is
+ *    contained. `OFnullptr` otherwise.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  OFvariant<int,OFString> v;
+ *  // ... some value is assigned to v ...
+ *  if( int* pI = OFget<int>( v ) )
+ *  {
+ *    COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl;
+ *    *pI = "27"; // now, let's directly assign something else
+ *  }
+ *  @endcode
+ */
+template<typename Alternative,typename... Alternatives>
+Alternative* OFget( OFvariant<Alternatives...>* v );
+
+/** Try to get a pointer to the given alternative from an OFvariant object.
+ *  @ingroup ofget_variant
+ *  @relates OFvariant
+ *  @tparam Alternative the chosen alternative that shall be accessed.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param v a const reference to an OFvariant object potentially holding `Alternative`.
+ *  @return the address of the contained value of type `const Alternative` if such a value is
+ *    contained. `OFnullptr` otherwise.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  const OFvariant<int,OFString> v( ... some value is assigned to v ... );
+ *  if( int* pI = OFget<int>( v ) )        // error, the result is const!
+ *  if( const int* pI = OFget<int>( v ) )  // OK
+ *  {
+ *    COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl;
+ *    *pI = "27"; // Error, *pI is const!
+ *  }
+ *  @endcode
+ */
+template<typename Alternative,typename... Alternatives>
+const Alternative* OFget( const OFvariant<Alternatives...>* v );
+
+/** Applies the given visitor to the given OFvariant object.
+ *  @ingroup ofvisit_variant
+ *  @relates OFvariant
+ *  @details@anchor ofget_alternative_const_variant
+ *  @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the
+ *    result type automatically in a portable way, therefore, it must be explicitly given by
+ *    the caller.
+ *  @tparam Visitor the type of the visitor, will be deduced automatically.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param visitor the visitor that will be invoked with the alternative currently being
+ *    held by the given OFvariant object.
+ *  @param v a reference to an OFvariant object that is going to be visited.
+ *  @return Let `CurrentAlternative` be the alternative that v currently holds: the result
+ *    of `visitor( *OFget<CurrentAlternative>( &v ) )` will be converted to `Result` and then
+ *    returned.
+ *  @pre all possible results must be convertible to `Result`.
+ *  @pre `visitor` must be able to take all possible alternatives.
+ *  @note If C++11 support is available, the visitor will be forwarded using perfect forwarding.
+ *    If not, the visitor may be copy constructed at least once, therefore, the visitor needs
+ *    to be copy constructible when pre C++11 compilers are targeted.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  struct PowerVisitor
+ *  {
+ *      template<typename Number>
+ *      Number operator()( Number number )
+ *      {
+ *          return number * number;
+ *      }
+ *  };
+ *  struct PrintVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number number )
+ *      {
+ *          COUT << number << OFendl;
+ *      }
+ *  };
+ *  struct AssignVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number& number )
+ *      {
+ *          number *= number;
+ *      }
+ *  };
+ *  // ...
+ *  OFvariant<int,float,double> v( 3.14 );
+ *  OFvariant<int,float,double> result = OFvisit<OFvariant<int,float,double> >( PowerVisitor(), v );
+ *  switch( result.index() )
+ *  {
+ *  case 0: COUT << "int "; break;
+ *  case 1: COUT << "float "; break;
+ *  case 2: COUT << "double "; break;
+ *  }
+ *  OFvisit<void>( PrintVisitor(), result );
+ *  COUT << "double " << OFvisit<double>( PowerVisitor(), v ) << OFendl;   // OK, every alternative fits inside double
+ *  COUT << "int " << OFvisit<int>( PowerVisitor(), v ) << OFendl;         // OK, value will be truncated!
+ *  COUT << "string " << OFvisit<OFString>( PowerVisitor(), v ) << OFendl; // ERROR!
+ *  OFvisit<void>( AssignVisitor(), v );
+ *  OFvisit<void>( PrintVisitor(), v );
+ *  @endcode
+ *  <b>Output (if the error was removed):</b>
+ *  @verbatim
+    double 9.8596
+    double 9.8596
+    int 9
+    9.8596
+    @endverbatim
+ */
+template<typename Result,typename Visitor,typename... Alternatives>
+Result OFvisit( Visitor visitor, OFvariant<Alternatives...>& v );
+
+/** Applies the given visitor to the given OFvariant object.
+ *  @ingroup ofvisit_variant
+ *  @relates OFvariant
+ *  @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the
+ *    result type automatically in a portable way, therefore, it must be explicitly given by
+ *    the caller.
+ *  @tparam Visitor the type of the visitor, will be deduced automatically.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param visitor the visitor that will be invoked with the alternative currently being
+ *    held by the given OFvariant object.
+ *  @param v a const reference to an OFvariant object that is going to be visited.
+ *  @return Let `CurrentAlternative` be the alternative that v currently holds: the result
+ *    of `visitor( *OFget<CurrentAlternative>( &v ) )` will be converted to `Result` and then
+ *    returned.
+ *  @pre all possible results must be convertible to `Result`.
+ *  @pre `visitor` must be able to take all possible alternatives.
+ *  @note If C++11 support is available, the visitor will be forwarded using perfect forwarding.
+ *    If not, the visitor may be copy constructed at least once, therefore, the visitor needs
+ *    to be copy constructible when pre C++11 compilers are targeted.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  struct PowerVisitor
+ *  {
+ *      template<typename Number>
+ *      Number operator()( Number number )
+ *      {
+ *          return number * number;
+ *      }
+ *  };
+ *  struct PrintVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number number )
+ *      {
+ *          COUT << number << OFendl;
+ *      }
+ *  };
+ *  struct AssignVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number& number )
+ *      {
+ *          number *= number;
+ *      }
+ *  };
+ *  // ...
+ *  const OFvariant<int,float,double> v( 3.14 );
+ *  OFvariant<int,float,double> result = OFvisit<OFvariant<int,float,double> >( PowerVisitor(), v );
+ *  switch( result.index() )
+ *  {
+ *  case 0: COUT << "int "; break;
+ *  case 1: COUT << "float "; break;
+ *  case 2: COUT << "double "; break;
+ *  }
+ *  OFvisit<void>( PrintVisitor(), result );
+ *  COUT << "double " << OFvisit<double>( PowerVisitor(), v ) << OFendl;   // OK, every alternative fits inside double
+ *  COUT << "int " << OFvisit<int>( PowerVisitor(), v ) << OFendl;         // OK, value will be truncated!
+ *  COUT << "string " << OFvisit<OFString>( PowerVisitor(), v ) << OFendl; // ERROR!
+ *  OFvisit<void>( AssignVisitor(), v );                                   // ERROR, v is const!
+ *  OFvisit<void>( PrintVisitor(), v );
+ *  @endcode
+ *  <b>Output (if the errors were removed):</b>
+ *  @verbatim
+    double 9.8596
+    double 9.8596
+    int 9
+    3.14
+    @endverbatim
+ */
+template<typename Result,typename Visitor,typename... Alternatives>
+Result OFvisit( Visitor visitor, const OFvariant<Alternatives...>& v );
+
+#endif // DOXYGEN
+
+/** A helper type for making OFvariant default constructible.
+ *  @relates OFvariant
+ *  @details
+ *  Use OFmonostate as the first alternative of an OFvariant otherwise holding a non default constructible type as
+ *  the first alternative for making the variant itself default constructible.
+ *  @note Be aware that any visitor applied to such an OFvariant object must also accept OFmonostate as an argument.
+ *  @details
+ *  <h3>Example</h3>
+ *  @code{.cpp}
+ *  template<typename T>
+ *  struct NonDefaultConstructible
+ *  {
+ *      NonDefaultConstructible( T t ) : value( t ) {}
+ *      T value;
+ *  };
+ *  typedef NonDefaultConstructible<int>   nint;
+ *  typedef NonDefaultConstructible<float> nfloat;
+ *  // ...
+ *  OFvariant<nint,nfloat> v( 3 );        // OK, but what if we don't know the value yet?
+ *  OFvariant<nint,nfloat> v;             // ERROR!
+ *  OFvariant<OFmonostate,nint,nfloat> v; // OK
+ *  v = 3;                                // assign the value when it's known
+ *  @endcode
+ */
+struct OFmonostate {};
+
+#endif // OFVARIANT_H
diff --git a/ofstd/include/dcmtk/ofstd/variadic/helpers.h b/ofstd/include/dcmtk/ofstd/variadic/helpers.h
new file mode 100644 (file)
index 0000000..c8a11c2
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+** DO NOT EDIT THIS FILE !!!
+** It was generated automatically by:
+**
+**   User: jan
+**   Host: NBOFFIS99
+**   Date: 2016-07-19 19:01:07
+**   Prog: /home/jan/Desktop/homes/scripts/make_variadic.sh
+**
+** Purpose:
+**   Defining some helper template metafunctions for emulating variadic
+**   templates.
+*/
+#ifndef VARIADIC_HELPERS_H
+#define VARIADIC_HELPERS_H
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftraits.h"
+#include "dcmtk/ofstd/ofalign.h"
+
+// Some macros for being used in non generated code
+#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(N) typename N ## 1=OFvariadic_nil,typename N ## 2=OFvariadic_nil,typename N ## 3=OFvariadic_nil,typename N ## 4=OFvariadic_nil,typename N ## 5=OFvariadic_nil,typename N ## 6=OFvariadic_nil,typename N ## 7=OFvariadic_nil,typename N ## 8=OFvariadic_nil,typename N ## 9=OFvariadic_nil,typename N ## 10=OFvariadic_nil,typename N ## 11=OFvariadic_nil,typename N ## 12=OFvariadic_nil,typename N ## 13=OFvariadic_nil,typename N ## 14=OFvariadic_nil,typename N ## 15=OFvariadic_nil,typename N ## 16=OFvariadic_nil,typename N ## 17=OFvariadic_nil,typename N ## 18=OFvariadic_nil,typename N ## 19=OFvariadic_nil,typename N ## 20=OFvariadic_nil,typename N ## 21=OFvariadic_nil,typename N ## 22=OFvariadic_nil,typename N ## 23=OFvariadic_nil,typename N ## 24=OFvariadic_nil,typename N ## 25=OFvariadic_nil,typename N ## 26=OFvariadic_nil,typename N ## 27=OFvariadic_nil,typename N ## 28=OFvariadic_nil,typename N ## 29=OFvariadic_nil,typename N ## 30=OFvariadic_nil,typename N ## 31=OFvariadic_nil,typename N ## 32=OFvariadic_nil,typename N ## 33=OFvariadic_nil,typename N ## 34=OFvariadic_nil,typename N ## 35=OFvariadic_nil,typename N ## 36=OFvariadic_nil,typename N ## 37=OFvariadic_nil,typename N ## 38=OFvariadic_nil,typename N ## 39=OFvariadic_nil,typename N ## 40=OFvariadic_nil,typename N ## 41=OFvariadic_nil,typename N ## 42=OFvariadic_nil,typename N ## 43=OFvariadic_nil,typename N ## 44=OFvariadic_nil,typename N ## 45=OFvariadic_nil,typename N ## 46=OFvariadic_nil,typename N ## 47=OFvariadic_nil,typename N ## 48=OFvariadic_nil,typename N ## 49=OFvariadic_nil
+#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK(N) typename N ## 1,typename N ## 2,typename N ## 3,typename N ## 4,typename N ## 5,typename N ## 6,typename N ## 7,typename N ## 8,typename N ## 9,typename N ## 10,typename N ## 11,typename N ## 12,typename N ## 13,typename N ## 14,typename N ## 15,typename N ## 16,typename N ## 17,typename N ## 18,typename N ## 19,typename N ## 20,typename N ## 21,typename N ## 22,typename N ## 23,typename N ## 24,typename N ## 25,typename N ## 26,typename N ## 27,typename N ## 28,typename N ## 29,typename N ## 30,typename N ## 31,typename N ## 32,typename N ## 33,typename N ## 34,typename N ## 35,typename N ## 36,typename N ## 37,typename N ## 38,typename N ## 39,typename N ## 40,typename N ## 41,typename N ## 42,typename N ## 43,typename N ## 44,typename N ## 45,typename N ## 46,typename N ## 47,typename N ## 48,typename N ## 49
+#define OFVARIADIC_TEMPLATE_PARAMETER_PACK(N) N ## 1,N ## 2,N ## 3,N ## 4,N ## 5,N ## 6,N ## 7,N ## 8,N ## 9,N ## 10,N ## 11,N ## 12,N ## 13,N ## 14,N ## 15,N ## 16,N ## 17,N ## 18,N ## 19,N ## 20,N ## 21,N ## 22,N ## 23,N ## 24,N ## 25,N ## 26,N ## 27,N ## 28,N ## 29,N ## 30,N ## 31,N ## 32,N ## 33,N ## 34,N ## 35,N ## 36,N ## 37,N ## 38,N ## 39,N ## 40,N ## 41,N ## 42,N ## 43,N ## 44,N ## 45,N ## 46,N ## 47,N ## 48,N ## 49
+
+/** A tag for template parameters to mark them as 'not a template parameter'.
+ */
+struct OFvariadic_nil;
+
+template<typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+struct OFvariadic_parameter_pack_sizeof
+: OFintegral_constant<size_t,OFvariadic_parameter_pack_sizeof<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value+1> {};
+
+template<>
+struct OFvariadic_parameter_pack_sizeof<>
+: OFintegral_constant<size_t,0> {};
+
+template<size_t Index,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+struct OFvariadic_nth_type
+: OFvariadic_nth_type<Index-1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {};
+
+template<typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+struct OFvariadic_nth_type<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+{ typedef T0 type; };
+
+template<size_t Index,typename T,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+struct OFvariadic_find_type_t
+: OFvariadic_find_type_t<Index+1,T,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {};
+
+template<size_t Index,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+struct OFvariadic_find_type_t<Index,T0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+: OFintegral_constant<size_t,Index> {};
+
+template<size_t Index,typename T>
+struct OFvariadic_find_type_t<Index,T>
+: OFintegral_constant<size_t,-1> {};
+
+template<typename T,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+struct OFvariadic_find_type
+: OFintegral_constant<size_t,OFvariadic_find_type_t<0,T,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value> {};
+
+template<template<typename L,typename R> class Accumulator,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+struct OFfold
+: OFfold<Accumulator,typename Accumulator<T0,T1>::type,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {};
+
+template<template<typename L,typename R> class Accumulator,typename T0>
+struct OFfold<Accumulator,T0> : T0 { typedef T0 type; };
+
+template<template<typename L,typename R> class Accumulator>
+struct OFfold<Accumulator> {};
+
+template<typename L,typename R>
+struct OFmax_sizeof
+: OFintegral_constant<size_t,(sizeof(L) > sizeof(R) ? sizeof(L) : sizeof(R))> {};
+
+template<size_t L,typename R>
+struct OFmax_sizeof<OFintegral_constant<size_t,L>,R>
+: OFintegral_constant<size_t,(L > sizeof(R) ? L : sizeof(R))> {};
+
+#ifdef OFalignof
+template<typename L,typename R>
+struct OFmax_alignof
+: OFintegral_constant<size_t,(OFalignof(L) > OFalignof(R) ? OFalignof(L) : OFalignof(R))> {};
+
+template<size_t L,typename R>
+struct OFmax_alignof<OFintegral_constant<size_t,L>,R>
+: OFintegral_constant<size_t,(L > OFalignof(R) ? L : OFalignof(R))> {};
+#endif // OFalignof
+
+#endif // VARIADIC_HELPERS_H
diff --git a/ofstd/include/dcmtk/ofstd/variadic/variant.h b/ofstd/include/dcmtk/ofstd/variadic/variant.h
new file mode 100644 (file)
index 0000000..d7752cb
--- /dev/null
@@ -0,0 +1,426 @@
+/*
+** DO NOT EDIT THIS FILE !!!
+** It was generated automatically by:
+**
+**   User: jan
+**   Host: caesar
+**   Date: 2016-07-14 14:48:02
+**   Prog: /home/jan/scripts/make_variadic.sh
+**
+** Purpose:
+**   Emulating variadic template parameters support for OFvariant with generated
+**   code.
+*/
+#ifndef VARIADIC_VARIANT_H
+#define VARIADIC_VARIANT_H
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/variadic/helpers.h"
+
+// We hide all this from doxygen, because it would only scare sane people
+// (and it is not needed for understanding how to use OFvariant).
+#ifndef DOXYGEN
+
+// Template recursively overload constructor and assignment operator for the
+// different alternatives of the variant (used in the template constructor/
+// assignment members).
+template<size_t Index,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+struct OFvariant_overload
+: OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+{
+    // Let the inherited methods take part in overload resolution
+    using OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor;
+    using OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::assignment;
+    static Uint16 test_accepts( T0 );
+    static Uint8 test_accepts( ... );
+#ifdef OFalign
+    static size_t constructor( void* content, const T0& t0 )
+    {
+        new (content) T0( t0 );
+#else
+    static size_t constructor( void*& content, const T0& t0 )
+    {
+        content = new T0( t0 );
+#endif
+        return Index;
+    }
+
+    static bool assignment( size_t index, void* content, const T0& t0 )
+    {
+        if( index == Index )
+        {
+            *static_cast<T0*>( content ) = t0;
+            return true;
+        }
+        return false;
+    }
+
+    template<typename T>
+    struct accepts : OFintegral_constant<OFBool,sizeof(test_accepts(*OFstatic_cast(T*,OFnullptr)))==2 || OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::template accepts<T>::value> {};
+};
+
+// Template recursion end, declares both functions with incompatible
+// signatures so that the 'using' statements work but the functions
+// do not effectively take part in the overload resolution.
+template<size_t Index>
+struct OFvariant_overload<Index>
+{
+    static void constructor();
+    static void assignment();
+    template<typename T>
+    struct accepts : OFfalse_type {};
+};
+
+// Creates a function pointer lookup table to select a function for the
+// currently contained alternative based on the stored index.
+// This is not really magic, the syntax will hurt your eyes though!
+template<typename Invoker,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+class OFvariant_invoke_t
+{
+public:
+    OFvariant_invoke_t()
+    {
+        // Template-recursively assign the function pointers to the fitting
+        // position inside the function pointer array. This will most likely
+        // be inlined by the compiler (it is tail recursive) and therefore
+        // not hurt the performance.
+        init<0>();
+    }
+
+    OFTypename Invoker::return_type operator()( size_t index, void* content, const Invoker& invoker = Invoker() )
+    {
+        // Select the fitting function pointer based on the index and call it with
+        // the given pointer to the current contents.
+        return (invoker.*m_Alternatives[index])( content );
+    }
+
+private:
+
+    // This is the recursion step for the Init template, it initializes the current
+    // function pointer and recurses to the Init template for the next index.
+    template<size_t Index>
+    OFTypename OFenable_if<(Index < OFvariadic_parameter_pack_sizeof<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value)>::type init()
+    {
+        m_Alternatives[Index] = &Invoker::template invoke<OFTypename OFvariadic_nth_type<Index,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::type>;
+        init<Index+1>();
+    }
+
+    // this is the specialization for the base of the recursion, doing nothing for the
+    // N+1th alternative, effectively stopping the recursion.
+    template<size_t Index>
+    OFTypename OFenable_if<(Index >= OFvariadic_parameter_pack_sizeof<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value)>::type init()
+    {
+
+    }
+
+    // the actual function pointer array
+    OFTypename Invoker::return_type (Invoker::*m_Alternatives[OFvariadic_parameter_pack_sizeof<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value])(void*) const;
+};
+
+// A helper template function for initializing and using a function
+// pointer lookup table as dispatcher for variant visitation etc.
+template<typename Invoker,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+OFTypename Invoker::return_type OFvariant_invoke( size_t index, void* content, const Invoker& invoker = Invoker() )
+{
+    // this may be a race condition in older compilers, which is no
+    // problem since the copied addresses of the functions are always
+    // the same.
+    static OFvariant_invoke_t<Invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> invocation_table;
+    return invocation_table( index, content, invoker );
+}
+
+// A functor that does copy construction from another variant
+// object.
+struct OFvariant_copy_construct_invoker
+{
+    typedef void return_type;
+
+#ifdef OFalign
+    OFvariant_copy_construct_invoker( void* content )
+    : m_Content( content )
+#else
+    OFvariant_copy_construct_invoker( void*& content )
+    : m_pContent( content )
+#endif
+    {
+
+    }
+
+    template<typename T>
+    void invoke( void* content ) const
+    {
+#ifdef OFalign
+        new (m_Content) T( *static_cast<const T*>( content ) );
+#else
+        m_pContent = new T( *static_cast<const T*>( content ) );
+#endif
+    }
+
+#ifdef OFalign
+    void* m_Content;
+#else
+    void*& m_pContent;
+#endif
+};
+
+// A functor that assigns the contents of another variant object
+// that contains the same alternative (regarding the type).
+struct OFvariant_assign_invoker
+{
+    typedef void return_type;
+
+    OFvariant_assign_invoker( void* content )
+    : m_Content( content )
+    {
+
+    }
+
+    template<typename T>
+    void invoke( void* rhs ) const
+    {
+        *static_cast<T*>( m_Content ) = *static_cast<const T*>( rhs );
+    }
+
+    void* m_Content;
+};
+
+// A functor that destroys the contained object.
+struct OFvariant_destroy_invoker
+{
+    typedef void return_type;
+
+    template<typename T>
+    void invoke( void* content ) const
+    {
+#ifdef OFalign
+        static_cast<T*>( content )->~T();
+#else
+        delete static_cast<T*>( content );
+#endif
+    }
+};
+
+// A functor that invokes the given functor, seriously!
+template<typename ReturnType,typename FN>
+struct OFvariant_visit_invoker
+{
+    typedef ReturnType return_type;
+
+    OFvariant_visit_invoker( FN& fn )
+    : m_Fn( fn )
+    {
+
+    }
+
+    template<typename T>
+    ReturnType invoke( void* content ) const
+    {
+        return m_Fn( *static_cast<T*>( content ) );
+    }
+
+    FN& m_Fn;
+};
+
+// The same as above, but for the const case.
+template<typename ReturnType,typename FN>
+struct OFvariant_const_visit_invoker
+{
+    typedef ReturnType return_type;
+
+    OFvariant_const_visit_invoker( FN& fn )
+    : m_Fn( fn )
+    {
+
+    }
+
+    template<typename T>
+    ReturnType invoke( void* content ) const
+    {
+        return m_Fn( *static_cast<const T*>( content ) );
+    }
+
+    FN& m_Fn;
+};
+
+// The actual variant implementation. Don't mess with this, look
+// at the doxygen API description instead.
+template<typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil>
+class OFvariant
+{
+public:
+    // typedef for old compilers that do not define the type 'OFvariant' in derived classes
+    typedef OFvariant variant;
+
+    OFvariant()
+#ifdef OFalign
+    : m_Content()
+#else
+    : m_pContent( new T0 )
+#endif
+    , m_Index( 0 )
+    {
+#ifdef OFalign
+        new (content()) T0;
+#endif
+    }
+
+    template<typename T>
+    OFvariant( const T& t, OFTypename OFenable_if<OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::template accepts<T>::value,int>::type = 0 )
+#ifdef OFalign
+    : m_Content()
+#else
+    : m_pContent()
+#endif
+    , m_Index( OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t ) )
+    {
+
+    }
+
+    OFvariant( const OFvariant& rhs )
+#ifdef OFalign
+    : m_Content()
+#else
+    : m_pContent()
+#endif
+    , m_Index( rhs.index() )
+    {
+        copy_construct( rhs.content() );
+    }
+
+    template<typename T>
+    OFTypename OFenable_if<OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::template accepts<T>::value,OFvariant>::type& operator=( const T& t )
+    {
+        // Either assign 't' if the contained alternative fits.
+        if( !OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::assignment( index(), content(), t ) )
+        {
+            // Or destroy the contained alternative and construct
+            // a new one, based on 't'.
+            destroy();
+            m_Index = OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t );
+        }
+        return *this;
+    }
+
+    OFvariant& operator=( const OFvariant& rhs )
+    {
+        if( this != &rhs )
+        {
+            // Do 'native' assignment if both variants contain
+            // the same alternative
+            if( m_Index == rhs.m_Index )
+            {
+                OFvariant_invoke<OFvariant_assign_invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+                (
+                    m_Index,
+                    rhs.content(),
+                    OFvariant_assign_invoker( content() )
+                );
+            }
+            else
+            {
+                // Destroy the contents and copy construct a new
+                // one
+                destroy();
+                m_Index = rhs.m_Index;
+                copy_construct( rhs.content() );
+            }
+        }
+        return *this;
+    }
+
+    ~OFvariant()
+    {
+        // Destroy the contained object
+        destroy();
+    }
+
+    size_t index() const
+    {
+        // Well, this is easy
+        return m_Index;
+    }
+
+private:
+    // Friend declarations for visitation and get<>.
+    template<typename T,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,typename X35,typename X36,typename X37,typename X38,typename X39,typename X40,typename X41,typename X42,typename X43,typename X44,typename X45,typename X46,typename X47,typename X48,typename X49>
+    friend T* OFget( OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>* );
+    template<typename T,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,typename X35,typename X36,typename X37,typename X38,typename X39,typename X40,typename X41,typename X42,typename X43,typename X44,typename X45,typename X46,typename X47,typename X48,typename X49>
+    friend const T* OFget( const OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>* );
+    template<typename ReturnType,typename FN,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,typename X35,typename X36,typename X37,typename X38,typename X39,typename X40,typename X41,typename X42,typename X43,typename X44,typename X45,typename X46,typename X47,typename X48,typename X49>
+    friend ReturnType OFvisit( FN, OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>& );
+    template<typename ReturnType,typename FN,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,typename X35,typename X36,typename X37,typename X38,typename X39,typename X40,typename X41,typename X42,typename X43,typename X44,typename X45,typename X46,typename X47,typename X48,typename X49>
+    friend ReturnType OFvisit( FN, const OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>& );
+
+    // Invoke copy construction
+    void copy_construct( void* rhs )
+    {
+        OFvariant_invoke<OFvariant_copy_construct_invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+        (
+            m_Index,
+            rhs,
+            OFvariant_copy_construct_invoker( content() )
+        );
+    }
+
+    // Invoke destructor
+    void destroy()
+    {
+        OFvariant_invoke<OFvariant_destroy_invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( m_Index, content() );
+    }
+
+#ifdef OFalign
+    // Allocate content with alignment.
+    typedef OFTypename OFfold<OFmax_sizeof,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::type max_sizeof_type;
+    typedef OFTypename OFfold<OFmax_alignof,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::type max_alignof_type;
+    void* content() const { return m_Content; }
+    mutable OFalign_typename(Uint8[max_sizeof_type::value],max_alignof_type::value) m_Content;
+#else
+    // Allocate content on the heap.
+    void*& content() const { return OFconst_cast(void*&,m_pContent); }
+    void* m_pContent;
+#endif
+    size_t m_Index;
+};
+
+// Actual implementation of get<> by type.
+template<typename T,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+T* OFget( OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>* v )
+{
+    return v->index() == OFvariadic_find_type<T,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value
+    ?
+        static_cast<T*>( v->content() )
+    :
+        OFnullptr
+    ;
+}
+
+// The same as above, but for the const case.
+template<typename T,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+const T* OFget( const OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>* v )
+{
+    return v->index() == OFvariadic_find_type<T,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value
+    ?
+        static_cast<const T*>( v->content() )
+    :
+        OFnullptr
+    ;
+}
+
+// Actual implementation if variant visitation.
+template<typename ReturnType,typename FN,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+ReturnType OFvisit( FN fn, OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>& v )
+{
+    return OFvariant_invoke<OFvariant_visit_invoker<ReturnType,FN>,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_visit_invoker<ReturnType,FN>( fn ) );
+}
+
+// The same as above, but for the const case.
+template<typename ReturnType,typename FN,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37,typename T38,typename T39,typename T40,typename T41,typename T42,typename T43,typename T44,typename T45,typename T46,typename T47,typename T48,typename T49>
+ReturnType OFvisit( FN fn, const OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>& v )
+{
+    return OFvariant_invoke<OFvariant_const_visit_invoker<ReturnType,FN>,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_const_visit_invoker<ReturnType,FN>( fn ) );
+}
+
+#endif // !DOXYGEN
+
+#endif // VARIADIC_VARIANT_H
index d4fb683c8a06550493f14a8f81dbb9596f37f296..f71b0c7c75580af8ba699fef1f978a7b0fe36e09 100644 (file)
@@ -2880,3 +2880,5 @@ OFString OFStandard::getHostName()
     return "localhost";
 #endif
 }
+
+DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place() { return *static_cast<OFin_place_tag*>(OFnullptr); }
index 88d12e348783c94a8e148df7e0f5e08af5955a34..add39cc0f4e875a8338dd45d3fad293f696b0bb6 100644 (file)
@@ -1,5 +1,5 @@
 # declare executables
-DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits)
+DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits tvariant)
 
 # make sure executables are linked to the corresponding libraries
 DCMTK_TARGET_LINK_MODULES(ofstd_tests ofstd)
index 8175ae3992e7df6e971b8d13a00b24c995cccb3b..b4bd322441a6fdf1a52e76c772ae612d198a0459 100644 (file)
@@ -226,6 +226,21 @@ tuuid.o: tuuid.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \
  ../../config/include/dcmtk/config/arith.h \
  ../include/dcmtk/ofstd/ofuuid.h
+tvariant.o: tvariant.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \
+ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \
+ ../include/dcmtk/ofstd/ofcast.h ../include/dcmtk/ofstd/ofexport.h \
+ ../include/dcmtk/ofstd/ofstdinc.h ../include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/ofstd/ofcmdln.h ../include/dcmtk/ofstd/oflist.h \
+ ../include/dcmtk/ofstd/ofstring.h ../include/dcmtk/ofstd/ofconsol.h \
+ ../include/dcmtk/ofstd/ofthread.h ../include/dcmtk/ofstd/offile.h \
+ ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \
+ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../include/dcmtk/ofstd/ofvriant.h \
+ ../include/dcmtk/ofstd/variadic/variant.h \
+ ../include/dcmtk/ofstd/variadic/helpers.h \
+ ../include/dcmtk/ofstd/ofalign.h
 tvec.o: tvec.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \
  ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \
index 77f18a6525148e9328ddf0692a6a8566a8d495a9..3b6aa89fc84720f0a5a9c1b7ef5adf803b91d864 100644 (file)
@@ -20,7 +20,7 @@ LOCALTRASH = *.out testfile.\$$\$$\$$
 test_objs = tests.o tatof.o tmap.o tvec.o tftoa.o tthread.o tbase64.o \
             tstring.o tlist.o tstack.o tofdatim.o tofstd.o tmarkup.o \
             tchrenc.o txml.o tuuid.o toffile.o tmem.o toption.o ttuple.o \
-            tlimits.o
+            tlimits.o tvariant.o
 objs = $(test_objs)
 progs = tests
 
index b41e78d0c51fe2a009bbd534a5b984f2ed69a1fc..cd0b974f300d64e6a2bd1c8ed1510a0b98618fc3 100644 (file)
@@ -78,4 +78,5 @@ OFTEST_REGISTER(ofstd_optional);
 OFTEST_REGISTER(ofstd_tuple);
 OFTEST_REGISTER(ofstd_limits);
 OFTEST_REGISTER(ofstd_safeSubtractAndAdd);
+OFTEST_REGISTER(ofstd_variant);
 OFTEST_MAIN("ofstd")
index 630f22beed254cd0a2d070fe27eb57be52de25d5..5a47291ff83a5593be001d325b98076eeebc1486 100644 (file)
@@ -228,44 +228,47 @@ static int rw_cond5=0;
 static int rw_cond6=0;
 static int rw_cond7=0;
 
-class RWLockT1: public OFThread
+class RWLockT2: public OFThread
 {
 public:
-  RWLockT1(): OFThread() {}
-  ~RWLockT1() {}
+  RWLockT2(): OFThread() {}
+  ~RWLockT2() {}
 
   virtual void run()
   {
-    if (0 == rwlock->rdlock())
+    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1;
+    if (0 == rwlock->wrlock())
     {
-      rw_cond1 = 1; // acquired read lock
-      mutex->lock();
-      mutex->unlock();
-      if (0== rwlock->unlock()) rw_cond2=1;
-      mutex2->lock();
+      rw_cond6=1;
       mutex2->unlock();
-      if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1;
-      if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1;
+      OFStandard::milliSleep(wait_timeout);
+      if (0==rwlock->unlock()) rw_cond7=1;
     }
     return;
   }
 };
 
-class RWLockT2: public OFThread
+class RWLockT1: public OFThread
 {
+private:
+  RWLockT2 &t2;
 public:
-  RWLockT2(): OFThread() {}
-  ~RWLockT2() {}
+  RWLockT1(RWLockT2 &t2) : OFThread(), t2(t2) {}
+  ~RWLockT1() {}
 
   virtual void run()
   {
-    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1;
-    if (0 == rwlock->wrlock())
+    if (0 == rwlock->rdlock())
     {
-      rw_cond6=1;
+      t2.start();
+      rw_cond1 = 1; // acquired read lock
+      mutex->lock();
+      mutex->unlock();
+      if (0== rwlock->unlock()) rw_cond2=1;
+      mutex2->lock();
       mutex2->unlock();
-      OFStandard::milliSleep(wait_timeout);
-      if (0==rwlock->unlock()) rw_cond7=1;
+      if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1;
+      if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1;
     }
     return;
   }
@@ -298,12 +301,9 @@ static void rwlock_test()
     BAILOUT(errmsg);
   }
 
-  RWLockT1 t1;
-  if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed");
-
   RWLockT2 t2;
-  if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed");
-
+  RWLockT1 t1(t2);
+  if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock/unlock test failed");
 
   int i=0;
   while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout);
@@ -317,7 +317,7 @@ static void rwlock_test()
     BAILOUT(errmsg);
   }
   OFStandard::milliSleep(wait_timeout);
-  if (rw_cond6) BAILOUT("read/write lock test failed");
+  if (rw_cond6) BAILOUT("read/write lock/unlock test failed");
 
   mutex->unlock();
 
@@ -325,56 +325,59 @@ static void rwlock_test()
   while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout);
   if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed");
 
-  if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed");
-  if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed");
+  if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed");
+  if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed");
 
   delete mutex;
   delete mutex2;
   delete rwlock;
 }
 
-class RWLockerT1: public OFThread
+class RWLockerT2: public OFThread
 {
 public:
-  RWLockerT1(): OFThread() {}
-  ~RWLockerT1() {}
+  RWLockerT2(): OFThread() {}
+  ~RWLockerT2() {}
 
   virtual void run()
   {
     OFReadWriteLocker locker(*rwlock);
-    if (0 == locker.rdlock())
+    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1;
+    if (0 == locker.wrlock())
     {
-      rw_cond1 = 1; // acquired read lock
-      mutex->lock();
-      mutex->unlock();
-      if (0== locker.unlock()) rw_cond2=1;
-      mutex2->lock();
+      rw_cond6=1;
       mutex2->unlock();
-      if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1;
-      if (0 == locker.rdlock()) rw_cond4=1;
-      // Implicit unlock() at the end
+      OFStandard::milliSleep(wait_timeout);
+      // Explicite unlock(), check if this causes one unlock() too much
+      if (0==locker.unlock()) rw_cond7=1;
     }
     return;
   }
 };
 
-class RWLockerT2: public OFThread
+class RWLockerT1: public OFThread
 {
+private:
+  RWLockerT2 &t2;
 public:
-  RWLockerT2(): OFThread() {}
-  ~RWLockerT2() {}
+  RWLockerT1(RWLockerT2 &t2): OFThread(), t2(t2) {}
+  ~RWLockerT1() {}
 
   virtual void run()
   {
     OFReadWriteLocker locker(*rwlock);
-    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1;
-    if (0 == locker.wrlock())
+    if (0 == locker.rdlock())
     {
-      rw_cond6=1;
+      t2.start();
+      rw_cond1 = 1; // acquired read lock
+      mutex->lock();
+      mutex->unlock();
+      if (0== locker.unlock()) rw_cond2=1;
+      mutex2->lock();
       mutex2->unlock();
-      OFStandard::milliSleep(wait_timeout);
-      // Explicite unlock(), check if this causes one unlock() too much
-      if (0==locker.unlock()) rw_cond7=1;
+      if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1;
+      if (0 == locker.rdlock()) rw_cond4=1;
+      // Implicit unlock() at the end
     }
     return;
   }
@@ -419,17 +422,14 @@ static void rwlocker_test()
     BAILOUT(errmsg);
   }
 
-  RWLockerT1 t1;
-  if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed");
-
   RWLockerT2 t2;
-  if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed");
-
+  RWLockerT1 t1(t2);
+  if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock test failed");
 
   int i=0;
   while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout);
 
-  if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock/unlock test failed");
+  if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock test failed");
   condition = rwlockLocker.unlock();
   if (condition)
   {
@@ -444,10 +444,10 @@ static void rwlocker_test()
 
   i=0;
   while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout);
-  if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed");
+  if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock test failed");
 
-  if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed");
-  if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed");
+  if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock test failed");
+  if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock test failed");
 
   delete mutex;
   delete mutex2;
diff --git a/ofstd/tests/tvariant.cc b/ofstd/tests/tvariant.cc
new file mode 100644 (file)
index 0000000..da0f4af
--- /dev/null
@@ -0,0 +1,110 @@
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#define OFTEST_OFSTD_ONLY
+#include "dcmtk/ofstd/oftest.h"
+#include "dcmtk/ofstd/ofvriant.h"
+
+struct int_visitor
+{
+    void operator()( double d )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)d;
+        OFCHECK_FAIL( "wrong alternative <double> selected" );
+    }
+
+    void operator()( int i )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)i;
+        OFCHECK( i == 42 );
+    }
+
+    void operator()( char c )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)c;
+        OFCHECK_FAIL( "wrong alternative <char> selected" );
+    }
+};
+
+struct double_visitor
+{
+    bool operator()( double d )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)d;
+        return d == 27.912456f;
+    }
+
+    bool operator()( int i )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)i;
+        OFCHECK_FAIL( "wrong alternative <int> selected" );
+        return false;
+    }
+
+    bool operator()( char c )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)c;
+        OFCHECK_FAIL( "wrong alternative <char> selected" );
+        return false;
+    }
+};
+
+OFTEST(ofstd_variant)
+{
+    // copy construction from alternative
+    OFvariant<int,float,bool> v0( true );
+
+    // default construction
+    OFvariant<int,float,bool> v1;
+
+    OFCHECK( OFget<bool>( &v0 ) );
+    OFCHECK( *OFget<bool>( &v0 ) );
+    OFCHECK( OFget<int>( &v1 ) );
+
+    // alternative changing assignment
+    v0 = 3.1415f;
+
+    // same alternative assignment
+    v1 = 7;
+
+    OFCHECK( !OFget<bool>( &v0 ) );
+    OFCHECK( OFget<float>( &v0 ) );
+    OFCHECK( *OFget<float>( &v0 ) == 3.1415f );
+    OFCHECK( OFget<int>( &v1 ) );
+    OFCHECK( *OFget<int>( &v1 ) == 7 );
+
+    // alternative changing assignment and copy construction
+    OFvariant<int,float,bool> v2( v0 = v1 );
+
+    OFCHECK( OFget<int>( &v0 ) );
+    OFCHECK( *OFget<int>( &v0 ) == 7 );
+    OFCHECK( OFget<int>( &v1 ) );
+    OFCHECK( *OFget<int>( &v1 ) == 7 );
+    OFCHECK( OFget<int>( &v2 ) );
+    OFCHECK( *OFget<int>( &v2 ) == 7 );
+
+    // same alternative assignment
+    v0 = 42;
+
+    OFCHECK( OFget<int>( &v0 ) );
+    OFCHECK( *OFget<int>( &v0 ) == 42 );
+
+    // same alternative assignment
+    v1 = v0;
+
+    OFCHECK( OFget<int>( &v0 ) );
+    OFCHECK( *OFget<int>( &v0 ) == 42 );
+    OFCHECK( OFget<int>( &v1 ) );
+    OFCHECK( *OFget<int>( &v1 ) == 42 );
+
+    v2 = 27.912456f;
+
+    // test visitation
+    OFvisit<void>( int_visitor(), v0 );
+    OFCHECK( OFvisit<bool>( double_visitor(), const_cast<const OFvariant<int,float,bool>&>( v2 ) ) );
+}